On Jun 23, 2009, at 2:38 PM, Christophe Grand wrote: > On Tue, Jun 23, 2009 at 9:14 PM, Daniel Lyons > <fus...@storytotell.org> wrote: > > Wish it were so, because I like your theory better than my reality: :) > > > Drat! Stupid reality! > > Now I have to bend it to make my theory valid. > > range is wily, it bit me before. It's a specialized seq. > > Can we try with a regular lazy-seq? > > user=> (dotimes [_ 10] (time (apply + (take 1000000 (iterate inc > 0))))) > "Elapsed time: 1033.9173 msecs" > "Elapsed time: 1123.099025 msecs" > "Elapsed time: 1393.07377 msecs" > "Elapsed time: 1091.260202 msecs" > "Elapsed time: 1031.521464 msecs" > "Elapsed time: 993.97605 msecs" > "Elapsed time: 964.909367 msecs" > "Elapsed time: 1004.735937 msecs" > "Elapsed time: 1113.822776 msecs" > "Elapsed time: 994.489104 msecs" > nil > user=> (dotimes [_ 10] (time (reduce + (take 1000000 (iterate inc > 0))))) > "Elapsed time: 486.111713 msecs" > "Elapsed time: 295.508019 msecs" > "Elapsed time: 290.850443 msecs" > "Elapsed time: 291.644888 msecs" > "Elapsed time: 290.163834 msecs" > "Elapsed time: 298.254597 msecs" > "Elapsed time: 288.870373 msecs" > "Elapsed time: 314.193563 msecs" > "Elapsed time: 295.104755 msecs" > "Elapsed time: 288.079002 msecs" > nil > > > Does this hack make your reality valid too? ;-)
It does: user> (dotimes [_ 10] (time (apply + (take 100000 (iterate inc 0))))) "Elapsed time: 131.61 msecs" "Elapsed time: 139.876 msecs" "Elapsed time: 180.685 msecs" "Elapsed time: 221.148 msecs" "Elapsed time: 313.682 msecs" "Elapsed time: 188.298 msecs" "Elapsed time: 180.442 msecs" "Elapsed time: 380.812 msecs" "Elapsed time: 241.149 msecs" "Elapsed time: 199.781 msecs" nil user> (dotimes [_ 10] (time (reduce + (take 100000 (iterate inc 0))))) "Elapsed time: 79.235 msecs" "Elapsed time: 50.107 msecs" "Elapsed time: 41.763 msecs" "Elapsed time: 47.521 msecs" "Elapsed time: 42.862 msecs" "Elapsed time: 40.48 msecs" "Elapsed time: 42.939 msecs" "Elapsed time: 45.12 msecs" "Elapsed time: 40.321 msecs" "Elapsed time: 42.979 msecs" But if I try it with your original number (10x bigger than mine) I run out of Java heap space. Which didn't happen before either, because the lists weren't materialized. So range is cheating here? How's that? — Daniel Lyons --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---