In article <E1Hv4fY-0005eN-9L / x31>,
  Yukihiro Matsumoto <matz / ruby-lang.org> writes:

> lambdaによって生成したProcの厳密化は行います。あきらめたのは、
> lambdaによって生成したとしてもyieldで呼び出したら厳密なチェッ
> クは行わないようにすることです。

なるほど。

lambda と call で扱う範囲で通常のメソッド的引数渡しのセマン
ティクスが保たれるのは、いままでまともでなかったのがまともに
なるということで、長年の問題が改善されるので嬉しいです。

その代償として、[[1,2],[3,4]].each(&lambda {|a,b| p [a,b]})
がエラーになるわけですが、Proc.new や proc は残るんでしたっ
け?

>   * lambdaでは厳密なチェック
>   * yieldはcallの別名
>
> です。今週ささだくんと直接会うのでその時いろいろ相談します。

同じなら別名はいらないんじゃないの、と私の minimalist 的側面
がささやきます。もちろん Ruby が minimalistic なデザインでは
なく、それが強い理由にならないことはわかっていますが、疑問の
きっかけにはなります。

そして、[ruby-dev:30856] にあげられている理由のうち、後者は
call でも nil.call を作ればいいので、残る理由は前者のニュア
ンスだけになります。

ニュアンスというが効果がないとはいいませんし、そういうところ
にこだわった結果が Ruby であるともいえるので反対する程ではな
いのですが、Proc#yield ってそんなにいるんですかね?

また、Proc#yield と Proc#call では call のほうが 1文字短いの
で call 側への誘導がある程度働きます。Proc#yield のニュアン
スの力がそれと拮抗していると両方から引っ張られてあまり気分が
よくならないかもしれません。

> |例えば [ruby-talk:162561] で提案し反応がなかった案をブロック
> |引数に適用すれば、(ラッパーに * じゃなくて ** を使うことにな
> |りますが) ラッパーを値の並び以外の情報をそれほど不自然でない
> |形で載せられるので呼び出し側の細工とラッパーを両立できます。
>
> あれ、私このメール見落としてました。ふーむ。

そういえば、キーワード引数の扱いは今どうなっているんですか?
-- 
[田中 哲][たなか あきら][Tanaka Akira]