Yes that's exactly what I meant, sorry I think I didn't express it very well. Of course I know about hash collissions, but (maybe mistakenly) I always thought that they happened in relatively rare cases. Interestingly, '() has a hash of 1 which is the same as the hash of integer 1!
On Friday, 21 December 2012 20:10:07 UTC, Nicolas Oury wrote: > > I think the intial post was not about the fact that collision was a > problem but about the fact that 0 and nil are frequent elements, so using > the same hash (if there is no good reason) would result in many useless > collisions. > > However, there might be a good reason to have nil and 0 having the same > hash. > (nil must probably have a hash equal to '() for example) > > > On Fri, Dec 21, 2012 at 9:05 AM, Christian Sperandio < > [email protected] <javascript:>> wrote: > >> I write again my post because the previous was bad written and I want to >> respect the Englis language the more as I can. >> With your question, I'm feeling you think each item has a different hash >> code. But it's wrong. You can meet collisions. >> An hash code is not an id, it's a way to find an element. >> So even if it's weird to have the same hash code for 0 and nil, this case >> is useful because it's shown you a case of collisions. >> >> >> Le jeudi 20 décembre 2012 19:04:06 UTC+1, Stathis Sideris a écrit : >> >>> Hello, >>> >>> I noticed the following: >>> >>> > (hash 0) >>> 0 >>> > (hash nil) >>> 0 >>> >>> Which is fair enough I suppose. It seems to have the following >>> side-effect though: >>> >>> > (hash [1 2 3 0]) >>> 955327 >>> > (hash [1 2 3 nil]) >>> 955327 >>> >>> Is that the intended behaviour? I suppose it's OK for two things to hash >>> to the same value, but IMHO, it would make the hash function more useful to >>> avoid this simple case. The implementation seems to check for nil >>> specifically and to return 0. >>> >>> Thanks, >>> >>> Stathis >>> >>> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to [email protected]<javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> [email protected] <javascript:> >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> > > > > -- > Sent from an IBM Model M, 15 August 1989. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en
