lazy-seq . , , . - - lazy-seq :
(defn simple-lazy-seq*
[seq-producing-fn]
(reify
clojure.lang.Sequential
clojure.lang.Seqable
(seq [this] (seq (seq-producing-fn)))))
(defmacro simple-lazy-seq
[& body]
`(simple-lazy-seq* (fn [] ~@body)))
lazy-seq ISeq, .
: Java.
static Seqable lazy_seq(IFn seq_generating_fn) {
return new Seqable() {
ISeq seq() {
return RT.seq(seq_generating_fn.invoke());
}
}
}
YourClass.lazy_seq(new IFn() {
Object invoke() {
return thing.returning_the_seq();
}
});
, , . , . . thing final IIRC. Java.