1.8.0-preview2 で、 Proc#call の動作がへんです。

% irb
irb(main):001:0> f1 = lambda { |r,| p r }
=> #<Proc:0x001a5180@(irb):1>
irb(main):002:0> a0 = []
=> []
irb(main):003:0> f1.call([], *a0)
ArgumentError: wrong number of arguments (0 for 2)
	from (irb):3
	from (irb):1:in `call'
	from (irb):3

これは仕様でしょうか? 1.6.8 ではエラーにならず、 [] が引数として渡さ
れました。

irb(main):005:0> f2 = lambda { |r,*l| p r,l }
=> #<Proc:0x00197594@(irb):5>
irb(main):006:0> a1 = [1]
=> [1]
irb(main):007:0> f2.call([], *a1)
[]
[1]
=> nil
irb(main):008:0> f2.call([[], *a1])
[]
[1704055]
=> nil

最後のは何か変なところをアクセスしているようです。プラットフォームによっ
てはSEGVになります。


						福本 淳
						fukumoto / imasy.or.jp