(5am:test exercise-1.12
(5am:is (= 1 (pascals-triangle 1 1)))
(5am:is (= 6 (pascals-triangle 3 5)))
(5am:is (= (+ (pascals-triangle 4 9)
(pascals-triangle 5 9))
(pascals-triangle 5 10)))
(5am:is-false (pascals-triangle 3 2))) ; invalid coord
(defun pascals-triangle (x y)
(cond ((> x y) nil)
((or (= x 1) (= x y)) 1)
(t (+ (pascals-triangle (1- x) (1- y))
(pascals-triangle x (1- y))))))
思っていたより遥かに楽に書けた。先入観を持つのは良くない。
返信削除