Anonymous user
Pascal's triangle: Difference between revisions
Clojure
(add Clojure) |
(Clojure) |
||
Line 67:
=={{header|Clojure}}==
For n < 1, prints nothing, always returns nil. Copied from the Common Lisp implementation above, but with local functions and explicity tail-call-optimized recursion (recur).
(defn pascal [n]
(let [newrow (fn newrow [lst ret]
(if lst
(recur (rest lst
(conj ret (+ (first lst) (or (second lst) 0))))
ret))
genrow (fn genrow [n lst]
Line 77 ⟶ 78:
(do (println lst)
(recur (dec n) (conj (newrow lst []) 1)))))]
(pascal 4)
|