> > (def transhashmap (transient {}) (assoc transhashmap "a" 1)
(assoc transhashmap "b" 2) etc Isn't that what Rich was talking about, about not bashing in place? On Fri, Aug 7, 2009 at 6:45 PM, Patrick Sullivan < wizardofwestma...@gmail.com> wrote: > > I don't have the EXACT code handy to c/p (at work now) but I did > something like the following. > (apologies for doing it such an iterative looking way, never got > comfortable with -> ;-)) > > (def transhashmap (transient {}) > (assoc transhashmap "a" 1) > (assoc transhashmap "b" 2) > etc > > Then when I did (count transhashmap) I never got higher than 8. > Perhaps something about the way it is handling strings/characters as a > hash is broken? I know my original code that screwed me up was taking > a long text and breaking it down into wordcounts. > > ~Patrick > > On Aug 7, 7:38 am, Christophe Grand <christo...@cgrand.net> wrote: > > Hi Patrick ! > > > > Can you post some code. here is what I get: > > user=> (-> {} transient (assoc! :a 1) (assoc! :b 2) (assoc! :c 3) (assoc! > :d > > 4) > > (assoc! :e 5) (assoc! :f 6) (assoc! :g 7) (assoc! :h 8) (assoc! :i 9) > > persistent!) > > {:a 1, :c 3, :b 2, :f 6, :g 7, :d 4, :e 5, :i 9, :h 8} > > user=> (persistent! (reduce #(assoc! %1 (str "k" %2) %2) (transient {}) > > (range 2 > > 0))) > > {"k0" 0, "k1" 1, "k2" 2, "k3" 3, "k4" 4, "k5" 5, "k10" 10, "k6" 6, "k11" > 11, > > "k7" > > 7, "k12" 12, "k8" 8, "k13" 13, "k9" 9, "k14" 14, "k15" 15, "k16" 16, > "k17" > > 17, > > "k18" 18, "k19" 19} > > > > Christophe > > > > On Fri, Aug 7, 2009 at 10:07 AM, Patrick Sullivan < > > > > > > > > wizardofwestma...@gmail.com> wrote: > > > > > Testing Transient w/Hashmaps (Thanks Cristophe!) and it seems like the > > > object won't store more then 8 keys. At first I thought it was my > > > frequency function > > > that was rolling it up, but then I simply tried creating a transient > > > object and manually assoc! ing a bunch of items into it. After the > > > 8th it seemed to stop taking new > > > keys. > > > > > Am I doing something silly here or is this a bug? > > > > > ~Patrick Sullivan > > > > > On Aug 6, 5:53 am, Rich Hickey <richhic...@gmail.com> wrote: > > > > On Aug 5, 10:10 pm, Luc Prefontaine <lprefonta...@softaddicts.ca> > > > > wrote: > > > > > > > I like this very much... that's the kind of clever optimizations > that > > > > > preserves Clojure principles and > > > > > can yield significant performance increases. This could also help > > > > > dealing with performance critics > > > > > in these small mutable languages "benchmarks" that newbies attempt > to > > > > > clone in Clojure. > > > > > > > Thank's Rich ! > > > > > > You're welcome! > > > > > > And special thanks to Christophe Grand, who (quickly!) applied the > > > > same technique to the hash maps and contributed that yesterday. So > > > > now, in the master branch, vectors and hash maps support transients. > > > > Everyone please try them out (where appropriate :). > > > > > > Rich > > > > -- > > Professional:http://cgrand.net/(fr) > > On Clojure:http://clj-me.blogspot.com/(en) > > > -- John --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---