> Now I try to use "realized?" on 123456th element:
>
> user=> (realized? (nth naturals 123456))
> ClassCastException java.lang.Long cannot be cast to
> clojure.lang.IPending clojure.core/realized? (core.clj:6505)
Hm, that's strange indeed. I also get
user> (realized? (iterate int 0))
;clojure.lang.Cons cannot be cast to clojure.lang.IPending
; Evaluation aborted.
where I'd expect it to return false. However, it works just fine with
`range' in place of iterate:
user> (realized? (range 0 10))
false
user> (realized? (doall (range 0 10)))
true
Bye,
Tassilo
> Ouch! I guess "realized?" isn't a macro. Next try:
No, it's a function. But why should that be important. Ok, before a
funcall all args are evaluated, but the result of evaluating a lazy seq
is still the same lazy seq. Evaluation doesn't realize anything, only
calling first/rest on the seq does.
> Huh? How do I get "realized?" to tell me what I want to know?
>
> What I want to know, is wether the element at the nth index
> has been computed and cached.
Ditto.
Bye,
Tassilo