[#16113] Strange idea... exporting from a scope — "Hal E. Fulton" <hal9000@...>

Hello...

33 messages 2001/06/01

[#16364] Re: Garbage Collection? — Michael Davis <mdavis@...>

Windows 2000 and linux (RedHat 6.2). I have run these tests on both OSs.

12 messages 2001/06/09

[#16400] Symbolic Computation III — Mathieu Bouchard <matju@...>

14 messages 2001/06/11

[#16502] Playing with Ruby Syntax (was: Initial thoughts about Ruby From a Smalltalk Programmer) — jweirich@...

Michael> Hi Everyone, I have to say I'm utterly fascinated by Ruby

9 messages 2001/06/15

[#16661] Problem running irb with Ruby 1.6.4 under FreeBSD 4.0 — Bob Alexander <balexander@...>

I've installed Ruby 1.6.4 on a FreeBSD 4.0 machine, and get the

11 messages 2001/06/20

[#16686] opening db files made by apache dbmmanage — Fritz Heinrichmeyer <fritz.heinrichmeyer@...>

14 messages 2001/06/21

[#16801] rb_define_class() vs Class.new() — Kero van Gelder <kero@...4050.upc-d.chello.nl>

Hi,

18 messages 2001/06/23
[#16802] Re: rb_define_class() vs Class.new() — ts <decoux@...> 2001/06/23

>>>>> "K" == Kero van Gelder <kero@d4050.upc-d.chello.nl> writes:

[#16841] RE: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...>

Next week I'll try to rebuild Ruby with Unicode strings. But it would be

15 messages 2001/06/25
[#16842] Re: national characters is strings — matz@... (Yukihiro Matsumoto) 2001/06/25

Hi,

[#16843] Re: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/25

That's good enough. But I'm afraid this could ( not would ) cause string

[#16868] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

14 messages 2001/06/25
[#16873] RE: Something strange with Ruby's inheritance mechanism — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/26

[#16879] Re: Something strange with Ruby's inheritance mechanism — Mathieu Bouchard <matju@...> 2001/06/26

On Tue, 26 Jun 2001, Aleksei Guzev wrote:

[#16869] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

12 messages 2001/06/25

[#16881] — "Aleksei Guzev" <aleksei.guzev@...>

32 messages 2001/06/26
[#16916] Re: Method overloading (option) Was: Re: — "Wayne Blair" <wayne.blair@...> 2001/06/26

[#16920] Re: Method overloading (option) Was: Re: — matz@... (Yukihiro Matsumoto) 2001/06/26

Hi,

[#16888] finalizers, destructors and whatnot — "David Leal" <david@...>

Hi all,

16 messages 2001/06/26

[#17037] keeping an Exception object alive — David Alan Black <dblack@...>

Hello --

19 messages 2001/06/28
[#17055] Re: keeping an Exception object alive — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17066] RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17076] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17079] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17138] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/07/02

Hi,

[#17141] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/07/02

Hello --

[#17142] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — ts <decoux@...> 2001/07/02

>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:

[ruby-talk:16763] uniq and "equivalence"

From: Hugh Sasse Staff Elec Eng <hgs@...>
Date: 2001-06-22 13:30:25 UTC
List: ruby-talk #16763
Array.uniq seems to rely on deleting multiple references to the same object.
Furthermore, this test for sameness seems to be based on object.id rather
than == or ===.  Most of the time this is right and proper, and also 
efficient. I support my belief that this is going on with:

#!/usr/local/bin/ruby -w

class Trapezoidal_fitness

    # Basic trapezoidal fitness funtion class
    # Instance vars are (upper|lower) (left|right) corners
    # of the tapezoid.  The upper points can be co-incident
    # for a triangular fitness function.

    attr_reader :ll, :ul, :ur, :lr

    def initialize(ll, ul, ur, lr)
        @ll, @ul, @ur, @lr = ll, ul, ur, lr
    end 

    def ==(other)
        print "in == self is #{self.inspect}, other is #{other.inspect}\n"
        result = (self.type == other.type) &&
        ( (@ll == other.ll) &&
          (@ul == other.ul) &&
          (@ur == other.ur) &&
          (@lr == other.lr) )
        print "in == result is #{result}\n"
        result
    end

    def |(other)
       [self,other].uniq
    end

end 

if __FILE__ == $0
    require "runit/testcase"
    require 'runit/cui/testrunner'
    require 'runit/testsuite'

    class  Test_Trapezoidal_fitness < RUNIT::TestCase
        def test_fuzzy_or
            first  = Trapezoidal_fitness.new(99.0, 101.0, 101.0, 103.0)
            second = Trapezoidal_fitness.new(99.0, 101.0, 101.0, 103.0)
            assert_equal([first], first | second )
        end
    end

    RUNIT::CUI::TestRunner.run(Test_Trapezoidal_fitness.suite)
end

which gives:

/usr/local/lib/ruby/site_ruby/1.6/runit/assert.rb:146: warning: concat (...) interpreted as method call
/usr/local/lib/ruby/site_ruby/1.6/runit/assert.rb:158: warning: concat (...) interpreted as method call

Test_Trapezoidal_fitness#test_fuzzy_or F.
Time: 0.002461
FAILURES!!!
Test Results:
 Run: 1/1(1 asserts) Failures: 1 Errors: 0
Failures: 1
fit_tmp.rb:42:in `test_fuzzy_or'(Test_Trapezoidal_fitness): expected:<[#<Trapezoidal_fitness:0xd11a0  @lr=103.0, @ur=101.0, @ul=101.0, @ll=99.0>]> but was:<[#<Trapezoidal_fitness:0xd11a0  @lr=103.0, @ur=101.0, @ul=101.0, @ll=99.0>, #<Trapezoidal_fitness:0xd1170  @lr=103.0, @ur=101.0, @ul=101.0, @ll=99.0>]> (RUNIT::AssertionFailedError)
	from fit_tmp.rb:46

So the | operator did not do the uniq as intended, and that can only be
because the objects were deemed to be different.

When this behaviour of uniq is not not what I want, how do I change it?

Possible RCR: uniq and uniq! might take a block specifying
an equality operator, similar to sort's comparison block.  This could
have applications for more complicated ideas of equivalence such as when
"Sasse, Hugh", "Sasse, H. G." and "Hugh Sasse" are to be considered the
same.

	Hugh
	hgs@dmu.ac.uk

In This Thread

Prev Next