From: matz@... (Yukihiro Matsumoto) Date: 2002-06-13T01:30:10+09:00 Subject: Re: a new block parameter/variable notation (Re: ruby-dev summary 17252-17356) Hi, In message "Re: a new block parameter/variable notation (Re: ruby-dev summary 17252-17356)" on 02/06/13, Dave Thomas writes: |> (i.e. lambda{|a|p a}.call(1,2,3) trap) at once. | |Is that the design flaw, or it is that | | a = 1,2,3 | |works? It seems to me that the target (the lhs of an assignment or |the block parameter list) should determine whether you're performing a |parallel assignment. If that was the case, then your example above |wouldn't be a problem: your example would be a runtime error (too many |arguments) and mine would be a compile time error. Things are not that simple. Suppose we have: def foo(obj) obj.each do |x| p x end end then foo([1,2,3]) is OK, but for 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. matz.