rendered paste body(define (english n)
(define low #("one" "two" "three" "four" "five" "six" "seven" "eight"
"nine" "ten" "eleven" "twelve" "thirteen" "fourteen"
"fifteen" "sixteen" "seventeen" "eighteen" "nineteen"))
(define tens #("twenty" "thirty" "fourty" "fifty" "sixty" "seventy" "eighty"
"ninety"))
(define place #("" "thousand" "million" "billion" "trillion" "quadrillion"
"quintillion"))
(define (subhundred i)
(if (< i 20)
(display (vector-ref low (- i 1)))
(begin
(display (vector-ref tens (- (quotient i 10) 2)))
(if (> (remainder i 10) 0)
(begin (display "-")
(display (vector-ref low (- (remainder i 10) 1)))))))
(display " "))
(define (partial i l)
(if (> (quotient i 1000) 0)
(partial (quotient i 1000) (+ l 1)))
(if (> (quotient i 100) 0)
(begin (display (vector-ref low (- (quotient (remainder i 1000) 100) 1)))
(display " hundred ")))
(if (> (remainder i 100) 0)
(subhundred (remainder i 100)))
(display (vector-ref place l))
(display " "))
(define (translate i)
(cond ((< i 0) (display "negative ") (partial (- 0 i) 0))
((> i 0) (partial i 0))
(else (display "zero")))
(newline))
(translate n))