(defun fibonacci(m)
(do ((nums nil)
(n 0 (1+ n))
(cur 0 next)
(next 1 (+ cur next)))
((= n m) (reverse nums))
(push next nums)))
该程序打印Fibonacci数列的前M个数: (fibonacci 10) => (1 1 2 3 5 8 13 21 34 55)
Common Lisp的DO宏的一般模式
(do (variable-definition*)
(end-test-form result-form*)
statement*)