[#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:10912] Making Hash from two lists

From: Kenichi Komiya <kom@...1.accsnet.ne.jp>
Date: 2001-02-15 17:03:57 UTC
List: ruby-talk #10912
Hi,

In [ruby-list:27832], I posted a code snipet that let you create
a Hash from lists of keys and values.

  hash = Hash.map(%w(Matz Larry), %(Ruby, Perl))

  p hash    # => {"Larry"=>"Perl", "Matz"=>"Ruby"}

The signature of this method looks like:

  Hash.map(keys, vals, def_val=nil)

Some details.

  * Keys and vals can be any Enumerable object.

  * If keys is longer than vals, def_val is assigned to these extra
    keys.

  * If vals is longer than keys, these extra valuess are ignored.
    (The vals enumerable is not iterated beyond length of keys).

matz's comments on this were:

  * The idea looks OK.

  * def_val may be an over design.

  * The name Hash.map may be confusing concidering existing
    Hash#map, which does wildly different thing.

So, if people like this functionality and a good name is
proposed, this may be included in some future version of
interpretter.

Some questions:

  Q1: Do you think this is worth including to core Ruby?

  Q2: Do you think the name is confusing?  If so what is good
      name for this method?

  Q3: I belive there was a discussion to create a snipet
      repository, which archives useful but small code examples.
      Is this facility already online?

My original intent of the post was just sharing my idea with
others.  So I, personally, am more interested in the code snipet
repository thing than wether or not this will go into core Ruby.


== Hash.map ==

def Hash.map(keys, vals, def_val=nil)
  map_array = []
  i = j = 0
  keys.each_with_index do |k, i|
    map_array[i * 2] = k
    map_array[i * 2 + 1] = def_val
  end
  vals.each_with_index do |v, j| 
    map_array[j * 2 + 1] = v
    break if j == i
  end
  self[*map_array]
end

p Hash.map(%w(foo bar zot), %w(1 2 3))
p Hash.map(%w(foo), %w(1 2 3))
p Hash.map(%w(foo bar zot), %w(1), false)

== output ==
{"zot"=>"3", "bar"=>"2", "foo"=>"1"}
{"foo"=>"1"}
{"zot"=>false, "bar"=>false, "foo"=>"1"}


Regards,
Kenichi Komiya

In This Thread

Prev Next