I believe I have discovered differing behavior between the JVM and CLR 
implementations when running the following statement:

user> (let [foo (repeatedly (fn [] (let [r (rand)]
(println "in-repeat: " r)
r)))
     [f & rst] foo]
     (println "return: " f))

When run on the JVM with clojure 1.4.0, I get the following output:

in-repeat:  0.6929552277817549
in-repeat:  0.7005322422752974
return:  0.6929552277817549
nil
user> 

When run on the CLR with clojure-clr 1.4.0, the random number will be 
printed from "in-repeat" infinitely, never to return.

Is this difference between the JVM and CLR implementations when 
destructuring a lazy sequence known?  

Also, why was the random number printed twice on the JVM side.  I haven't 
looked an the implementation, but I would guess this would be due to 
chunking the sequence. Thanks.

-Frank Failla 

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to