[#1026] Is this a bug? — Dave Thomas <Dave@...>
18 messages
2000/01/03
[#1053] rand() / drand48() — ts <decoux@...>
11 messages
2000/01/05
[#1055] Re: rand() / drand48()
— matz@... (Yukihiro Matsumoto)
2000/01/05
[#1061] Re: rand() / drand48()
— gotoken@... (GOTO Kentaro)
2000/01/07
Hi,
[#1067] Here docs not skipping leading spaces — Dave Thomas <Dave@...>
5 messages
2000/01/08
[#1083] YADQ (Yet Another Dumb Question) — Dave Thomas <Dave@...>
12 messages
2000/01/10
[#1084] Infinite loop — Dave Thomas <Dave@...>
17 messages
2000/01/11
[#1104] The value of while... — Dave Thomas <Dave@...>
24 messages
2000/01/11
[#1114] Re: The value of while...
— Dave Thomas <Dave@...>
2000/01/12
matz@netlab.co.jp (Yukihiro Matsumoto) writes:
[#1128] Re: The value of while... — David Suarez de Lis <excalibor@...>
Hi all,
1 message
2000/01/12
[#1133] Re: Class variables... — David Suarez de Lis <excalibor@...>
Hi there,
2 messages
2000/01/12
[#1158] Is this expected behavior? — Dave Thomas <Dave@...>
6 messages
2000/01/21
[#1172] Re: Possible bug in ruby-man-1.4 — Huayin Wang <wang@...>
> |Well, I guess it comes down to what you mean by an integer
10 messages
2000/01/24
[#1177] Re: Possible bug in ruby-man-1.4
— Dave Thomas <Dave@...>
2000/01/25
matz@netlab.co.jp (Yukihiro Matsumoto) writes:
[#1188] Enumerable and index — Dave Thomas <Dave@...>
5 messages
2000/01/27
[#1193] Semantics of chomp/chop — Dave Thomas <Dave@...>
7 messages
2000/01/28
[#1197] Question about 'open' — Dave Thomas <Dave@...>
8 messages
2000/01/30
[ruby-talk:01100] Re: Infinite loop
From:
Clemens Hintze <clemens.hintze@...>
Date:
2000-01-11 15:40:24 UTC
List:
ruby-talk #1100
Yukihiro Matsumoto writes: > Hi, > > In message "[ruby-talk:01092] Re: Infinite loop" > on 00/01/11, Clemens Hintze <clemens.hintze@alcatel.de> writes: > [...] > Here's two option to solve this. Which do you prefer? > > (a) like Array#inspect, Array#hash can use rb_protect_inspect() and > rb_inspecting_p() to detect cycles. > > (b) change the behavior of Array#hash not to traverse items > recursively. e.g. > > def hash > h = self.id > for item in self > h ^= item.id > end > h > end > > Both are real eacy to implement. I prefer latter. To be true, on the first glance I had prefer also the second one. But then I have imagined that this change would make impossible to write: a1 = ["hello", [1, 2, 3], "world"] a2 = [[1, 2, 3], "world", "hello"] a1.hash == a2.hash wouldn't it? I think this is a very nice property of Array! :-) As I do not know the rb_protect_inspect and rb_inspecting_p functions, I cannot say if the problem would also occur here. :-/ OTOH, your 2nd solution would retain the current property, iff the arrays would contains the same elements regardless of theirs order. What do you think? > > matz. \cle