[#1026] Is this a bug? — Dave Thomas <Dave@...>

18 messages 2000/01/03

[#1084] Infinite loop — Dave Thomas <Dave@...>

17 messages 2000/01/11

[#1104] The value of while... — Dave Thomas <Dave@...>

24 messages 2000/01/11

[ruby-talk:01101] Re: Infinite loop

From: Dave Thomas <Dave@...>
Date: 2000-01-11 15:57:52 UTC
List: ruby-talk #1101
matz@netlab.co.jp (Yukihiro Matsumoto) writes:

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

     class Array
       def hash
         h = self.id
         for item in self
           h ^= item.id
         end
         h
       end
     end


     a = [ 1, 2, 3]
     p a
     p a.hash
     a[0] = 3
     a[2] = 1
     p a
     p a.hash

Except if you do that,

     [1, 2, 3]
     537680497
     [3, 2, 1]
     537680497

Shouldn't there be a shift in there?


Dave


-- 
Thomas Consulting.
Innovative and successful developments with Unix, Java, C, and C++. 

Now in bookstores:
 The Pragmatic Programmer.  www.pragmaticprogrammer.com/ppbook/

In This Thread