[#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:6614] Re: best way to interleaf arrays?

From: Dave Thomas <Dave@...>
Date: 2000-11-29 04:25:18 UTC
List: ruby-talk #6614
David Alan Black <dblack@candle.superlink.net> writes:

> I was wondering about a block form.  I'm not sure exactly what it
> would do -- specifically, whether the results of the block would
> pertain to the keys or the values of the new hash.  In other words,
> would it be this:
> 
>       each_with_index { |e,i| h[i] = yield(i, e) }
> 
> or this:
> 
>       each_with_index { |e,i| h[yield(i, e)] = e }
>

or
     module Enumerable
       def to_h(value = 1)
         h = {}
         if block_given?
           each_with_index {|e,i| hk,hv = yield(e,i); h[hk] = hv }
         else
           each {|hv| h[hv] = value }
         end
         h
       end
     end

     ary = %w{one two three}

     ary.to_h        #=> {"one"=>1, "three"=>1, "two"=>1}
     ary.to_h false  #=> {"one"=>false, "three"=>false, "two"=>false}

     ary.to_h { |word, index| [index, word]}
                     #=> {0=>"one", 1=>"two", 2=>"three"}

     ary.to_h { |word, index| [word, index]}
                     #=> {"one"=>0, "three"=>2, "two"=>1}

     ary.to_h { |word,| [word.upcase, true]}
                     #=> {"ONE"=>true, "THREE"=>true, "TWO"=>true}

> Another question on the hypothetical to_h subject: would there be any
> reason for to_h not to be part of Enumerable, rather than Array?

Sounds reasonable to me.



Dave

In This Thread