Exercise 1.18 in Guile Scheme
Exercise 1.18 in Common Lisp
Exercise 1.18 in Emacs Lisp