P95

(de fullWords (N)
   (cond
      ((=0 N) "zero")
      ((> 14 N)
         (get
            '("one" "two" "three" "four" "five" "six" "seven" "eight" "nine" "ten" "eleven" "twelve" "thirteen")
            N ) )
      ((= 15 N) "fifteen")
      ((= 18 N) "eighteen")
      ((> 20 N) (pack (fullWords (% N 10)) "teen"))
      ((> 100 N)
         (pack
            (get
               '("twen" "thir" "for" "fif" "six" "seven" "eigh" "nine")
               (dec (/ N 10)) )
            "ty"
            (unless (=0 (% N 10))
               (pack "-" (fullWords (% N 10))) ) ) )
      ((rank N '((100 . "hundred") (1000 . "thousand") (1000000 . "million")))
         (pack (fullWords (/ N (car @))) " " (cdr @) " " (fullWords (% N (car @)))) ) ) )

http://picolisp.com/wiki/?99p95

11jul10    abu