It died with out of memory with a half a minute delay. On Monday, July 23, 2012 11:30:19 PM UTC+3, Luc wrote: > > Did you try flatten ? > > Luc P. > > > > Hello. > > > > I did a naive simple benchmark of Haskell and Scala recently and now i > > decided to add Clojure to the picture. Here is the idea > > > http://blog.worldcognition.com/2012/06/folding-tree-to-list-benchmark-scala-vs.html > > > > > So, I wrote the following functions: > > > > (defn generate-tree [[h & t :as coll]] > > (if (seq coll) > > (let [lr (generate-tree t)] [h lr lr]) > > nil)) > > > > (defn to-list [[v l r :as node]] > > (if-not (nil? node) > > (concat > > (to-list l) > > (lazy-seq (cons v (to-list r)))) > > [])) > > > > Now I get these results: > > > > (def tree (generate-tree (range 1 21))) > > > > (do (time (doall (to-list tree))) :done) > > "Elapsed time: 1681.75 msecs" > > :done > > > > If I remove the 'lazy-seq' wrapping second 'concat' argument, things > become > > worst: > > > > (do (time (doall (to-list tree))) :done) > > "Elapsed time: 19716.222 msecs" > > > > Why is this so? Both results are kind of disappointing for me cause > Scala > > gives me ~270ms time using functional code and 5x faster using the > mutable > > one (on much slower machine). > > >
-- 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