■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50



レス数が1000を超えています。残念ながら全部は表示しません。

rubyを語るスレッド

71 :名無しさん@お腹いっぱい。 :02/04/19 19:51
>>66 ループ本体は実際、毎回メソッド呼び出しですよ。
& で受けたときだけ、もらったブロックを Proc オブジェクト化します。

apply(x, f) で受ける仕様にした場合の不都合と言うと、Rubyは静的
片付けが弱い言語なので、コンパイラがこれを見て f がブロックを
受ける仮引数であると分からないところですね。

たとえば、この関数が x の値によって f を呼んだり呼ばなかったり
するとき、 apply(1, 2) のような誤用がエラーにされません。
イテレータブロックを大々的に採用し多用する言語としては、
ブロックと一般引数の混同を招くような仕様ではまずい。
よって、明示的に受ける場合は一般の引数と区別できるよう、
& をつけて静的に判断できるようにした、という説明はどうでしょうか。
(実際は逆で、実装を素直に反映したのだと思います)




掲示板に戻る 全部 前100 次100 最新50

read.cgi ver5.26+ (01/10/21-)