From: mrilu Date: 2000-04-20T21:43:45+02:00 Subject: [ruby-talk:02535] Default naming for iterator parameters 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.