(set! previous_token_to_words token_to_words)
(define (token_to_words token name)
(cond
;; condition to recognize money tokens
;; return list of words
(t
(previous_token_to_words token name))))
The actual condition and return list of words is similar to the
treatment of email addresses described above.
The regular expression for money is probably "\\$[0-9]+\\.[0-9][0-9]"
You will need a new function to relate the digits to the pronunciation. If you don't know how to do that in Scheme the following will work
(define (num-to-ordinal num)
"Returns the ordinal in words for num (up to 40)."
(car
(cdr
(assoc (parse-number num)
'((1 first) (2 second) (3 third) ...
(39 thirty-ninth) (40 fortieth))))))
Once you decide on the condition, remember that you need to return
a list of words.