From: SASADA Koichi Date: 2007-08-18T14:02:38+09:00 Subject: [ruby-dev:31476] Re: lambda {|(v0,v1),v2|}.call([1],2)  ささだです。 Tanaka Akira wrote: > 以下の例は ArgumentError になりません。 > > % ./ruby -ve 'lambda {|(v0,v1),v2| p [v0,v1,v2]}.call([1],2)' > ruby 1.9.0 (2007-08-18 patchlevel 0) [i686-linux] > [1, nil, 2] ... > lambda を call した際の引数の数の検査の厳密化がネストした引数 > の部分にも再帰的に適用されるかどうかが異なるのだと思うのです > が、これって議論したことありましたっけ?  議論していないと思います。  実装側の意見としては、これを厳密にチェックするようにするのはとても とても大変なので、嫌だなぁ、と思います。  仕様的にはどうなんでしょうね。厳密にしてもらうと嬉しい例ってあるん だろうか。  ちなみに、lambda 関係なくてふつうのメソッドでもできるんですが、こ れはどうなんでしょう。 def m((a, b), c) p [a, b, c] end m([], 1) m([1], 2) m([1, 2], 3) m([1, 2, 3], 4) #=> [nil, nil, 1] [1, nil, 2] [1, 2, 3] [1, 2, 4] -- // SASADA Koichi at atdot dot net