[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:11558] Re: Array bugs?

From: "Ben Tilly" <ben_tilly@...>
Date: 2001-02-26 02:29:36 UTC
List: ruby-talk #11558
"Ben Tilly" <ben_tilly@hotmail.com> wrote:
>
>"Christoph Rippel" <crippel@primenet.com>  wrote:

[much stuff, including 2 possible solutions to
the == issue for arrays]

Oops, both previous solutions had the major
defect that they were not commutative.  But
this is solvable:

    class Array
      @@other_id = nil
      @@other_seen = nil

      def == (other)
        if @@other_id.nil?
          begin
            @@other_id = Hash.new( nil )
            @@other_seen = Hash.new( false )
            return self == other
          ensure
            @other_id = nil
          end
        else
          return false unless other.kind_of? Array
          return false unless length == other.length
          other_id = @@other_id[self.id]
          if other_id.nil?
            return false if @@other_seen[other.id]
            @@other_seen[other.id] = true
            @@other_id[self.id] = other.id
            each_index do |i|
              return false if not self[i] == other[i]
            end
            return true
          else
            return other_id == other.id
          end
        end
      end
    end

The key difference is the addition of the checks for
@@other_seen.  If you don't have that, then you get
different results for this case:

    a = ["hello"]
    b = (1..3).map {|x| a}
    c = (1..3).map {|x| ["hello"])
    p (b == c)
    p (c == b)

Note that currently Ruby says these are equal.  With
the method above Ruby says that they are different.
Compare though what these two do:

    b[0].push "world"
    c[0].push "world"

I think that calling them unequal is quite reasonable.

Cheers,
Ben
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com

In This Thread

Prev Next