[ruby-talk:02535] Default naming for iterator parameters

From: mrilu <mrilu@...>
Date: 2000-04-20 19:43:45 UTC
List: ruby-talk #2535
I'm back at my computer after some traveling. I know I think Ruby 
subconsiously because today at work (in the midst of java code) I came up 
with weird shorthand which could improve code readibility. I've no 
idea for syntax "for the other side" but my idea for the caller side 
could be presented like this:

{'foo' => 'bar', 'dog' => 'bert'}.each_pair {
  print key, ": ", value, "\n"
}

This code is somehow magically translated into following before execution.

{'foo' => 'bar', 'dog' => 'bert'}.each_pair {
  |key, value|
  print key, ": ", value, "\n"
}

I thought being able to set default iterator parameter naming *might* 
be good idea.

Now if people think this is good (I know Matz said at least he's lazy :)
we should think

1) proper default names
2) way to describe default names to interpreter for 
   home made iterating functions

For the first point the documentation could give a hint, because iterators 
are already documented like:

        each_key {|key|...}
               Iterates over each key in the hash table.

The second is harder, and might require some new syntax.

  def each_key
    set_default_named_parameters( 'key', 'value' )
    # ... normal code with code for iterator
  end

Or, logically (and maybe more beautifully):

  def weird_iterator(foo) | key, value |
    # ... normal code with use of iterator
  end

This is just an idea, so I'm not proposing immediate change, nor
do I know how useful default naming would be.



In This Thread

Prev Next