On Sun, Dec 19, 2010 at 10:33 PM, Tim Daly <d...@axiom-developer.org> wrote: > On 12/19/2010 10:21 PM, Ken Wesson wrote: >> >> On Sun, Dec 19, 2010 at 9:42 PM, Tim Daly<d...@axiom-developer.org> >> wrote: >>> >>> On 12/19/2010 9:24 PM, Ken Wesson wrote: >>>> >>>> On Sun, Dec 19, 2010 at 8:25 PM, Tim Daly<d...@axiom-developer.org> >>>> wrote: >>>>> >>>>> On 12/19/2010 8:20 PM, Ken Wesson wrote: >>>>>> >>>>>> On Sun, Dec 19, 2010 at 8:18 PM, Tim Daly<d...@axiom-developer.org> >>>>>> wrote: >>>>>>> >>>>>>> I didn't mean to imply that other people >>>>>>> don't have the "ah-hah!" experience with >>>>>>> other languages. However, I have only had >>>>>>> the (before lisp)|(after lisp) experience >>>>>>> with lisp. >>>>>>> >>>>>>> Your enlightenment might vary. >>>>>>> >>>>>>> Rich gave his "Whitehead" talk and brought >>>>>>> up the fact that OO languages get several >>>>>>> things wrong. >>>>>> >>>>>> Out of curiosity, which "several things" were these? >>>>> >>>>> http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey >>>> >>>> "Please install Flash Player". >>>> >>>> Has everyone on this list developed a sudden allergy to plain text and >>>> HTML? First I get pointed to a 34-minute video, and now this. A simple >>>> bulleted list with a brief precis about each item would have sufficed; >>>> a multi-megabyte install of an executable and who knows how much >>>> futzing around, overkill. >>>> >>> The points made by Rich in the video require context. >>> Besides, the only way I could make a bullet list would >>> be to listen to the video again. My memory is hopelessly >>> lossy. >> >> Exactly why text is preferable to video for stuff that can be >> expressed in text. Your memory wouldn't matter -- you could link to >> the text. And Google could search inside it. > > This video is not just a list of broken things. It goes to the > very philosophy behind the difference between values, identity, > and state. The bullet point you seek is: > > * OO programs conflate value, state, and identity. > > That is the essence but I'm not sure you'll understand it > without the video.
Ah. So, like the confused situations you get with Java's mutable collections. Two lists are equal if they have the same contents in the same order -- but then you use one as a key in a hashmap, and then add an item to it, and boom! Clojure separates this stuff out because the Clojure vector's immutability makes its value stable given its identity. Refs and atoms and agents can encapsulate mutable state, but their identity (as defined by = and hash) is fixed rather than changing with its state. And some objects (keywords and symbols) exist to be almost pure identity, used to label other things. Something like that? -- 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