RosettaCodeData/Task/Pascals-triangle/Common-Lisp/pascals-triangle-2.lisp
2023-07-01 13:44:08 -04:00

12 lines
311 B
Common Lisp

(defun pascal-next-row (a)
(loop :for q :in a
:and p = 0 :then q
:as s = (list (+ p q))
:nconc s :into a
:finally (rplacd s (list 1))
(return a)))
(defun pascal (n)
(loop :for a = (list 1) :then (pascal-next-row a)
:repeat n
:collect a))