[#1491] bug — Mathieu Bouchard <matju@...>
6 messages
2003/09/01
[#1492] non-blocking mode behavior (Re: bug)
— nobu.nokada@...
2003/09/01
Hi,
[#1512] New tests — Dave Thomas <Dave@...>
I was looking through the new test/ruby/* stuff just now, and notices
6 messages
2003/09/05
[#1533] GC disable / enable question — Torsten Rueger <torsten.rueger@...>
Moi,
7 messages
2003/09/17
[#1534] Re: GC disable / enable question
— nobu.nokada@...
2003/09/17
Hi,
[#1541] How to debug ? — Torsten Rueger <torsten.rueger@...>
Moi,
6 messages
2003/09/19
[#1542] Re: How to debug ?
— ts <decoux@...>
2003/09/19
>>>>> "T" == Torsten Rueger <torsten.rueger@hiit.fi> writes:
[#1551] Hashes as keys — "Nathaniel Talbott" <nathaniel@...>
I was just playing around with Hash#hash and discovered that you can't use a
13 messages
2003/09/23
[#1552] Re: Hashes as keys
— Jim Freeze <jim@...>
2003/09/23
On Wednesday, 24 September 2003 at 6:21:33 +0900, Nathaniel Talbott wrote:
[#1556] ostruct.rb patch — "Nathaniel Talbott" <nathaniel@...>
I've been finding OpenStruct to be very useful lately, and then I discovered
9 messages
2003/09/24
[#1557] Re: ostruct.rb patch
— "NAKAMURA, Hiroshi" <nahi@...>
2003/09/24
Hi, Nathaniel,
Re: Hashes as keys
From:
"Christoph" <chr_news@...>
Date:
2003-09-24 15:56:22 UTC
List:
ruby-core #1568
"Eugene Scripnik" wrote:
...
> Yes, you are right. This was just a fast dirty example of redefining
> #hash method. BTW, you have to use pair[0].hash instead of pair[0] and
> pair[1].hash similiarly. And think about collisions that your hash
> method will generate, I think it is too simple.
Your probably right but if you really want a good and fast hash
method you have to write this as an extension anyway and
experiment a lot - here is a random (probably over-complicated
and not necessarily good) variant
def hash
_h = length * (length +43)
__h = 1 << 31 - _h >> 6
each {|k,v|
_h += k.hsh^(v.hsh<< 2)
__h ^= (k.hsh << 3) + v.hsh + k.hsh
}
_h + __h + _h ^__h
end
/Christoph