In article <E1Hv6we-0006S3-ST / x31>,
  Yukihiro Matsumoto <matz / ruby-lang.org> writes:

> |ニュアンスというが効果がないとはいいませんし、そういうところ
> |にこだわった結果が Ruby であるともいえるので反対する程ではな
> |いのですが、Proc#yield ってそんなにいるんですかね?
>
> この辺は提供しておいてユーザの使い方に任せようと思います。
> ちょっと放任ですね。

ユーザに対する立場としてはそれでいいでしょうが、そこにあるデ
ザインの考えを言葉にしていただけると、Ruby っぽいインターフェー
スをデザインするときの参考になるのですが、言葉にはできません
かね?

> |そういえば、キーワード引数の扱いは今どうなっているんですか?
>
> 1.9には入らないことになりました。

そうすると現時点では ** によるラッパーという案は通りにくそう
ですね。

でも、なんで入れないんですか?

それはそれとして、他の案としては、ラッパー用の記法を導入する
というものもあります。たとえば、*& という記号を使って次のよ
うにするとか。

def w(*&v)
  m(*&v)
end

とか

def w2
  m2 {|*&v| yield *&v }
end

とか。

v には呼び出しの情報を表現する適当なオブジェクトが渡されるも
のとします。つまり、値の並びとブロックの情報です。そして、呼
出元が call かどうかのフラグもいれられます。もちろん、将来的
にキーワード引数が入れば、それも入ります。また、それらの情報
を参照・変更できるものとします。

[ruby-talk:162561] の ** に対する *& の利点は、キーワード引
数と独立して仕様を定義できることの他に、*& は他の引数と混ぜ
ないという仕様にできることです。[ruby-talk:162561] での **
の仕様は、普通の引数と混ざった時の挙動が自明でないので。
-- 
[田中 哲][たなか あきら][Tanaka Akira]