More specifically, I am trying to build Hash Consed trees whose nodes are records.
http://en.wikipedia.org/wiki/Hash_consing This is a necessary step in a lot of algorithms. It is a benefit of being principled about not mutating values. And it can not be implemented, without overriding hashCode and equals. Best, Nicolas. On Sat, Jul 17, 2010 at 6:32 PM, Nicolas Oury <nicolas.o...@gmail.com>wrote: > Well. I totally agree that value equality is the correct approach. And I am > very happy it is the default. > > > But, in some situations, you want to have accessors but do want to have > identity as an equality. > You cannot use identical? in Clojure data structures, for example. > > I am in a situation where I know, by construction, that equality is > identity. > It's a bit of a problem to test for equality at each insertion and > deletion. (Especially because I have deep trees). > > I think having an option allowing that would be useful, at least to me. > (I agree, I can write my own accessors, but it make things a lot harder to > generate with macros) > > Best regards, > > Nicolas. > > On Sat, Jul 17, 2010 at 6:01 PM, ataggart <alex.tagg...@gmail.com> wrote: > >> No. Use identical? if you want to test for object identity. IIRC >> Rich commented that the inability to override equals/hashCode was >> intentional as value equality was the correct approach. See >> http://clojure.org/state >> >> >> On Jul 17, 7:00 am, Nicolas Oury <nicolas.o...@gmail.com> wrote: >> > Dear all, >> > >> > I was wondering if they were a way to define a record type with >> identity as >> > an equality semantic? >> > >> > (defrecord A[] >> > Object >> > (hashCode ...) >> > (equals ...)) >> > do not work. >> > >> > Is there a way to do that? >> > >> > (Defining a deftype around the defrecord is a bit annoying) >> > >> > Best regards, >> > >> > Nicolas. >> >> -- >> 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<clojure%2bunsubscr...@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 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