File tree Expand file tree Collapse file tree 2 files changed +12
-4
lines changed
Expand file tree Collapse file tree 2 files changed +12
-4
lines changed Original file line number Diff line number Diff line change 117117 need any laziness."
118118 [bindings & body]
119119 (let [f 'lazy-recur
120- [names values] (alternates bindings)]
121- `(letfn [(~f [~@names]
120+ [names values] (alternates bindings)
121+ blob-names (repeatedly (count names) gensym)]
122+ `(letfn [(~f [~@blob-names]
122123 (lazy-seq
123- (iter# ~@names)))
124+ (iter# ~@blob- names)))
124125 (iter# [~@names]
125126 ~@body)]
126127 (~f ~@values))))
Original file line number Diff line number Diff line change 9898 (testing " 0-arg lazy-loop"
9999 (is (= [1 1 1 ] (take 3
100100 (lazy-loop []
101- (cons 1 (lazy-recur ))))))))
101+ (cons 1 (lazy-recur )))))))
102+ (testing " destructuring support"
103+ (is (= (range 1 6 )
104+ ((fn my-map [f xs] (lazy-loop [[x & xs :as coll] xs]
105+ (when (seq coll)
106+ (cons (f x)
107+ (lazy-recur xs)))))
108+ inc (range 5 ))))))
102109
103110(deftest test-alternates
104111 (is (= '[[a b] [1 2 ]]
You can’t perform that action at this time.
0 commit comments