> I imagine this is possible if you drill into the guts of
> PersistentHaspMap, but I would strongly discourage the behavior in
> user code.  Perhaps as an upgrade to the object itself?  There is a 1%
> chance that this could be a language upgrade, assuming it works across
> the board.  I would tread cautiously.

I could easily imagine an implementation of equality for two tree sets  
checking for intermediate node reference equality as a shortcut... but  
as you say, not in user code.

Right now, APersistentSet.equals(Object o) only casts to Set, and does  
equality checking by iterating over the elements of the input set.

I'd certainly benchmark this before doing the work, though -- I'd  
guess that most equal sets will hash-compare as equal, most non-equal  
sets will fail early on in a per-element comparison, and it's probably  
a minority of compared sets that will share structure. It's unlikely  
that adding an additional object identity comparison is worth the  
machine instructions.

My hunch (from examining the performance of Clojure's sets in the  
past) is that it's not worth doing the work...

-- 
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

Reply via email to