9 lines
310 B
Clojure
9 lines
310 B
Clojure
(defn nacci [init]
|
|
(letfn [(s [] (lazy-cat init (apply map + (map #(drop % (s)) (range (count init))))))]
|
|
(s)))
|
|
|
|
(let [show (fn [name init] (println "first 20" name (take 20 (nacci init))))]
|
|
(show "Fibonacci" [1 1])
|
|
(show "Tribonacci" [1 1 2])
|
|
(show "Tetranacci" [1 1 2 4])
|
|
(show "Lucas" [2 1]))
|