| Paste number 90536: | seq1 |
| Pasted by: | rhickey |
| When: | 9 months, 2 weeks ago |
| Share: | Tweet this! | http://paste.lisp.org/+1XUW |
| Channel: | #clojure |
| Paste contents: |
(defn seq1 [#^clojure.lang.ISeq s]
(reify [clojure.lang.ISeq]
(.first [] (.first s))
(.more [] (seq1 (.more s)))
(.next [] (let [sn (.next s)] (and sn (seq1 sn))))
(.seq [] (let [ss (.seq s)] (and ss (seq1 ss))))
(.count [] (.count s))
(.cons [o] (.cons s o))
(.empty [] (.empty s))
(.equiv [o] (.equiv s o))))
(take 1 (map prn (range 10)))
(take 1 (map prn (seq1 (range 10))))
(take 1 (map prn [1 2 3]))
(take 1 (map prn (seq1 [1 2 3])))This paste has no annotations.