matz / ruby-lang.org (Yukihiro Matsumoto) writes:

>   def foo(obj)
>     obj.each do |x|
>       p x
>     end
>   end
> 
>   foo({1=>2, 2=>4})
> 
> the following assignments are done internally: 
> 
>   x = 1, 2
>   x = 2, 4
> 
> We can remove "a = 1,2,3" from the syntax, but we cannot remove it
> from iterators.

True, except if you _wanted_ to force coercion into an array in block
arguments, you could always use the syntax

   obj.each do |*x| ...


That keeps the semantics clean and consistent


Cheers


Dave