[#6363] Re: rescue clause affecting IO loop behavior — ts <decoux@...>

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

17 messages 2000/11/14
[#6367] Re: rescue clause affecting IO loop behavior — David Alan Black <dblack@...> 2000/11/14

Hello again --

[#6582] best way to interleaf arrays? — David Alan Black <dblack@...>

Hello --

15 messages 2000/11/26

[#6646] RE: Array Intersect (&) question — Aleksi Niemel<aleksi.niemela@...>

Ross asked something about widely known and largely ignored language (on

23 messages 2000/11/29
[#6652] RE: Array Intersect (&) question — rpmohn@... (Ross Mohn) 2000/11/29

aleksi.niemela@cinnober.com (Aleksi Niemel) wrote in

[#6723] Re: Array Intersect (&) question — Mathieu Bouchard <matju@...> 2000/12/01

> >Use a hash. Here's code to do both and more. It assumes that

[#6656] printing/accessing arrays and hashes — raja@... (Raja S.)

I'm coming to Ruby with a Python & Common Lisp background.

24 messages 2000/11/30

[ruby-talk:6090] Re: detect:ifNone: in Ruby

From: Dave Thomas <Dave@...>
Date: 2000-11-07 02:18:59 UTC
List: ruby-talk #6090
jweirich@one.net writes:

> Then we can rewrite matching_sum into ...
> 
>   def matching_sum (aSum)
>     if_none (@summary.detect {|each| each.name == aSum.name}) do
>       result = Sum.new (aSum.name, 0)
>       @summary << result
>       result
>     end
>   end
> 
> There, that captures some of the flavor of the Smalltalk version.
> 
> Is it worthwhile?  Is it clearer?  I'm not sure, but I thought it was
> interesting and that this list might enjoy it.

I like it. You can also mess around with the built in classes to get
an effect similar to Smalltalk's:

    a = [1,2,3,4,5]

    # #ifNil? returns the receiver, unless the receiver is nil, in
    # which case it returns its argument

    class Object
      def ifNil?(expr)
        self
      end
    end
  
    def nil.ifNil?(expr)
      expr
    end

    x = a.detect {|i| i == 7} .ifNil? 99    #=> 99
    x = a.detect {|i| i == 3} .ifNil? 99    #=> 3



In This Thread

Prev Next