Common Lisp宏学习之 DO


(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*)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注