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

From: David Alan Black <dblack@...>
Date: 2000-11-29 03:58:05 UTC
List: ruby-talk #6613
On Wed, 29 Nov 2000, Dave Thomas wrote:

> David Alan Black <dblack@candle.superlink.net> writes:
> 
> >    class Array 
> >      def to_h
> >        h = {}
> >        each_index { |i| h[i] = at i }
> >        h
> >      end
> >    end
> > 
> >    %w{ list of words }.to_h  # => {0=>"list", 1=>"of", 2=>"words"}
> > 
> > One could then invert the hash to get at least one version of the
> > original effect -- namely, the original array elements as hash keys
> > and all the values true.  (Even zero!)
> 
> I'm convinced by this, particular if we added the block form too.

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 something else?  Or might it be better for to_h to be blockless,
since the new hash could in any case simply be processed with all the
familiar iterators?

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?


David

-- 
David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web:  http://pirate.shu.edu/~blackdav



In This Thread