我们的任务是以这种方式打印出帕斯卡三角形中的值
(pascal 2)
(1 2 1)
(pascal 0)
(1)
我在互联网某处复制了二项式定理的代码,定义如下:
(defun choose(n k)
(labels ((prod-enum (s e)
(do ((i s (1+ i)) (r 1 (* i r))) ((> i e) r)))
(fact (n) (prod-enum 1 n)))
(/ (prod-enum (- (1+ n) k) n) (fact k))))
现在我正在尝试从我的 pascal 函数中的值创建一个列表:
(defun pascal (start end)
(do ((i start (+ i 1)))
((> i end) )
(print (choose end i) ))
)
如果我用 (pascal 0 2) 测试该函数,它会产生 1 2 1 NIL。如何消除 NIL 并创建列表?