diff options
Diffstat (limited to 'cljlib.fnl')
| -rw-r--r-- | cljlib.fnl | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -3615,10 +3615,11 @@ Lua `#` operator on `rev` takes linar time. If `t` is empty returns [rev] (seq* (lazy.rseq rev))) -(defn lazy-seq +(defn lazy-seq* "Create lazy sequence from the result of calling a function `f`. Delays execution of `f` until sequence is consumed. `f` must return a -sequence or a vector." +sequence or a vector. There's a convenience macro `lazy-seq' +automates the process of function creation." [f] (seq* (lazy.lazy-seq f))) @@ -4535,7 +4536,7 @@ number-of-colls arguments" (if-some [s (seq coll)] (let [res (f nil (first s))] (cond (reduced? res) (f (deref res)) - (seq? res) (concat res (lazy-seq #(step (rest s)))) + (seq? res) (concat res (lazy-seq* #(step (rest s)))) :else (step (rest s)))) (f nil))) coll) @@ -4546,7 +4547,7 @@ number-of-colls arguments" (if (every? seq colls) (let [res (apply f nil (map first colls))] (cond (reduced? res) (f (deref res)) - (seq? res) (concat res (lazy-seq #(step (map rest colls)))) + (seq? res) (concat res (lazy-seq* #(step (map rest colls)))) :else (step (map rest colls)))) (f nil))) (cons coll colls)) |