LispでFizzBuzz

 お世話になっております。
 最近はLispを少しかじっているのですが、以前に書いたFizzBuzz再帰ではなく反復で書いてあったので、再帰でも書いてみました。

(defun fizzbuzz (begin end)
  (cond ((> begin end) nil)
	((and (= 0 (mod begin 3))
	      (= 0 (mod begin 5)))
	 (cons "FizzBuzz" (fizzbuzz (+ begin 1) end)))
	((= 0 (mod begin 3))
	 (cons "Fizz" (fizzbuzz (+ begin 1) end)))
	((= 0 (mod begin 5))
	 (cons "Buzz" (fizzbuzz (+ begin 1) end)))
	((cons begin (fizzbuzz (+ begin 1) end)))))

 出力するには、例えば次のようにします。

(dolist (v (fizzbuzz 1 100))
  (format t "~A~%" v))

 再帰もいいですよね。

以上