you can't really use this as regular old mutable data. if you store it somewhere, and then you change it, the original will break. i don't really see how you could use this in a non-functional way and still have it work at all.
like, you probably won't actually be let-binding them very often. seems like the sort of thing that you'll have a block of code that looks like: (-> [] (transient) (conj! stuff) (assoc! stuff) (persistent!)) in fact, i'll probably end up writing a macro that does just that. On Aug 4, 10:19 am, Sean Devlin <francoisdev...@gmail.com> wrote: > Rich, > > First of all, thank you for informing the community about this before > you push it into Clojure 1.1/2.0. Developers are people, and it takes > time for us to adjust to change. Advance warning helps a lot. > > As for the changes themselves, I don't know yet. Now, I've only > thought about this briefly, and you have been working on this a long > time. I don't have your experience. I'm sure there a ton of details > I don't see, but the following is my "gut" response. > > I don't like this addition. I absolutely love that every data > structure is persistent in Clojure, and that I don't have to think > about sharing, etc. You make a great argument in your "Clojure for > Lispers" videos about why persistent data structures are required, and > human understanding is not enough. This change seems to be a step > backwards. > > The above argument is not perfect. I will admit that using Java > interaction, it is possible to deal with mutable data structures > anyway. I do have some code the relies on Java classes, and I mutate > the object sequentially. In those cases I wrap all the changes inside > of one higher level function and return the result. So maybe I am > doing some type of transient thing already. > > As a second point, I don't like the introduction of assoc!, conj!, > etc. It just strikes me as another bug to have (oh, right, I need > assoc! not assoc...). > > With all this being said, I'm looking forward to your final version. > Your speedup is impressive, and I know parts of my code (lists of hash > maps) that could use it. You've done some pretty bad ass stuff with > Clojure so far, and I think there is a chance that you could pull this > off beautifully. > > Good luck. > > On Aug 3, 5:25 pm, Rich Hickey <richhic...@gmail.com> wrote: > > > > > I've been doing some work on Transient Data Structures. You can read > > about them here: > > >http://clojure.org/transients > > > Feedback welcome, > > > Rich --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---