If you set! *warn-on-reflection* to true, you'd see a lot of reflection
warnings from your code.

Type-hinting the code like this: http://sprunge.us/ATiV makes your
example execute in 120ms on my machine.

Maris writes:

> I implemented leftist heap (from Purely Functional Data Structures book)
>  in clojure.
>
> https://gist.github.com/maruks/135fef92455578b61de2
>
> It takes 32 seconds to insert 100000 elements in heap:
>
> (time  (peek   (reduce conj (empty-heap)  (range 10000000 20000000 100)
> )))
> "Elapsed time: 32649.71438 msecs"
> 10000000
>
> Why is it so much slower than SML NJ?  Something wrong with my code?
>
>
> Here is SML version:
> https://gist.github.com/maruks/c863eac9cf057a071307
>
> And function that inserts 100000 elements in *54* milliseconds !
>
> fun test(n:int) : int  =
>     let
> val r = List.tabulate(n, fn x => 10000000 + 100 * x)
> val h = foldl ( fn (e, h) => IntHeap.insert(e , h) )  IntHeap.empty  r
>     in
> IntHeap.findMin(h)
>     end

--

-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to