Sync
This commit is contained in:
parent
6f050a029e
commit
776bba907c
3887 changed files with 59894 additions and 7280 deletions
|
|
@ -0,0 +1,3 @@
|
|||
(defn powers [m] (for [n (iterate inc 1)] (reduce * (repeat m n)))))
|
||||
(def squares (powers 2))
|
||||
(take 5 squares) ; => (1 4 9 16 25)
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
(defn squares-not-cubes
|
||||
([] (squares-not-cubes (powers 2) (powers 3)))
|
||||
([squares cubes]
|
||||
(loop [[p2first & p2rest :as p2s] squares, [p3first & p3rest :as p3s] cubes]
|
||||
(cond
|
||||
(= p2first p3first) (recur p2rest p3rest)
|
||||
(> p2first p3first) (recur p2s p3rest)
|
||||
:else (cons p2first (lazy-seq (squares-not-cubes p2rest p3s)))))))
|
||||
|
||||
(->> (squares-not-cubes) (drop 20) (take 10))
|
||||
; => (529 576 625 676 784 841 900 961 1024 1089)
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
(defn seq->fn [sequence]
|
||||
(let [state (atom (cons nil sequence))]
|
||||
(fn [] (first (swap! state rest)))
|
||||
|
||||
(def f (seq->fn (squares-not-cubes)))
|
||||
[(f) (f) (f)] ; => [4 9 16]
|
||||
Loading…
Add table
Add a link
Reference in a new issue