11 lines
424 B
Common Lisp
11 lines
424 B
Common Lisp
(defun next-pascal (l)
|
|
`(1 ,@(loop for i from 0 to (- (length l) 2)
|
|
collect (+ (nth i l) (nth (1+ i) l)))
|
|
1))
|
|
|
|
(defun pascal-print (r)
|
|
(let* ((pasc (loop with p = (list (list 1))
|
|
repeat r do (nconc p (list (apply #'next-pascal (last p))))
|
|
finally (return p)))
|
|
(len (length (format nil "~A" (car (last pasc))))))
|
|
(format t (format nil "~~{~~~D:@<~~{~~A ~~}~~>~~%~~}" len) pasc)))
|