From: Tanaka Akira Date: 2003-01-01T12:32:46+09:00 Subject: [ruby-dev:19266] Re: ruby-1.8.0 / yield(nil)とyield()のちがい In article <1041383157.631472.21307.nullmailer@picachu.netlab.jp>, matz@ruby-lang.org (Yukihiro Matsumoto) writes: > なんとかなったみたいです。以下のtest suiteが動作します。もう > じきコミットします。 *a で受けると、 > def f; yield; end; f {|*a| test_ok(a, [])} > def f; yield []; end; f {|*a| test_ok(a, [])} > def f; yield nil; end; f {|*a| test_ok(a, [nil])} > def f; yield [nil]; end; f {|*a| test_ok(a, [nil])} > def f; yield 1; end; f {|*a| test_ok(a, [1])} > def f; yield [1]; end; f {|*a| test_ok(a, [1])} のそれぞれが区別できないんでは? また、*a で渡すと、 > def f; yield [[]]; end; f {|*a| test_ok(a, [[]])} > def f; yield *[[]]; end; f {|a| test_ok(a, [])} というように、 > def f; yield [[]]; end; f {|a| test_ok(a, [[]])} という期待と異なってしまうのでは? -- [田中 哲][たなか あきら][Tanaka Akira]