12 lines
453 B
Clojure
12 lines
453 B
Clojure
(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)
|