;;; file: lisp99.lisp
;;; Lisp example of "99 Bottles of beer on the wall"
(labels ((foo (x)
(and (<= 0 x) (cons x (foo (1- x))))))
(format t (format nil
"~~{~~&~~@(~~%~~R ~A ~A!~~)~~:*~~&~~@(~~R ~0@*~A!~~)~~&~~@(~2@*~A!~~)~~&~~@(~~[~A~~:;~~:*~~R~~:*~~] ~0@*~A!~~)~~}"
"bottles of beer"
"on the wall"
"take one down, pass it around"
"no more"
)
(foo 99)))