A vision from The Sussman came to me, and he told me what I was doing was Good but that I could do Better. May he enjoy this RevisedThe SecondThe ABC Programming LanguageAlgorithmic Implementation: (define (abc source)
(define accumulator 0)
(define ascii #f)
(define (interpret i)
(case i
((#\a) (set! accumulator (+ 1 accumulator)))
((#\b) (set! accumulator (- accumulator 1)))
((#\c) (display (if ascii
(integer->char accumulator)
accumulator)))
((#\d) (set! accumulator (- accumulator)))
((#\r) (set! accumulator (random accumulator)))
((#\n) (set! accumulator 0))
((#\$) (set! ascii (not ascii)))
((#\l) (run))
((#\;) (display accumulator)
(display (integer->char accumulator)))))
(define (run)
(for-each interpret (map char-downcase (string->list source)))
(newline))
(run))