From: matz@... (Yukihiro Matsumoto) Date: 2002-07-21T23:15:37+09:00 Subject: [ruby-dev:17751] Re: self in block まつもと ゆきひろです In message "[ruby-dev:17746] Re: self in block" on 02/07/21, Takaaki Tateishi writes: | |At Sun, 21 Jul 2002 01:10:02 +0900, |> 現在実行中のProcを知りたいというニーズは分かりますが、selfの |> 挙動を変えたり、callerという新しい機能を追加したり、あるいは |> call_current_blockという機能を必要とするほど一般的ではないと |> 思います。せいぜい一時的な名前(変数)をひとつ省略できるくらい |> では。 | |再帰的な処理をブロックを使って書くというケースが少ないので採用す |るほどのものでもないということですよね? |そうであれば,惜しいですが,了解しました. | |惜しいので擁護する意見をもう一つだけ… |再帰的な処理をブロックを使って書く場合で比べると,変数を使って書 |く方法と,Yコンビネータを自分で作る方法,call_current_block()のよ |うなものを使う方法とどれが使われるだろうと考えると,結構 |call_current_block()も使われそうな気がしたのです. 「使われそうな気がした」理由はいまいち不明ですが、その理由が なんであったとしても、再帰的な処理をブロックのまま書く場合そ のものが相当レアケースだと思いますので、それを積極的に支援す る理由になるのは難しいのではないかと思います。教育的な見地か らそれを啓蒙すべきだという話なら別ですが。 逆にLispなどlambdaを持つ言語で積極的にcall_current_block()の ようなものがないということは、さほど必要だと見なされていない という傍証になると思います。 |外れているかもしれないので恥ずかしいですが,メソッド引数において, |& で受ける方法があるのに yield() が使われていることを受けての推測 |です. yieldとブロック引数の場合には * yieldの方が古い * yieldの方が速い * yieldの方が分かりやすい という要素があって、最後のものはいつも成立するとは限りません から、その推測が当たっていると結論づけるのは難しいと思います。 まつもと ゆきひろ /:|)