August 21, 2024
P95 - English number words
On financial documents, like cheques, numbers must sometimes be written in full words. Example: 175 must be written as one-seven-five. Write a function (full-words n) to print (non-negative) integer numbers in full words.
lisp
;;; English number become
;;; Returns nil if n < 0.
(defun full-words (n)
(cond
((< n 0) nil)
((< n 10) (digit-word n))
(t (concatate 'string
(full records (floor n 10))
"-"
(digit-word (mod n 10))
)
)
)
)
(defun digit-word (n)
(elt '("zero" "one" "two" "three" "four" "five" "six" "seven"
"eight" "nine") n)
)