まつもと ゆきひろです
In message "[ruby-list:6072] Re: Ruby 連載第 3 回"
on 98/01/28, TAKAHASHI Masayoshi <maki / inac.co.jp> writes:
|高橋です。
|#全然イテレータじゃないやん! :)
あいや,まったくです.^^;;;
|イテレート(繰り返し)する本質は「do...end」とか「{}」とか
|「.hogehoge」にあるのではなくて、「.hogehoge」の定義の中の、
|「yield」とそれの外側にあるループにある、と考えていいので
|しょうか?
その通りです.
|で、「イテレータ」の本質は、関数閉包(っていうんでしたっけ?
|λ式みたいなやつ)をその場で書けるというか、メソッドの引数と
|して無名メソッド(?)みたいなものを直接記述できる、という感じ
|でしょうか。
その通りです.
結局はイテレータの本質は,閉包あるいはクロージャ(のようなも
の)を暗黙の引数として渡すことが出来る機能にあるわけです.こ
れはまったく「繰り返し」とは独立の概念です.
Rubyにイテレータを導入しようと思ったその時にはCLUのイテレー
タが念頭にあったので,まさか将来こんなに「繰り返し」でない領
域で応用されるとは思ってもいませんでした.
|今からでも遅くはないと思うので、「イテレータ」とかじゃない名前
|をつけたほうがいいのではないでしょうか。「昔は『イテレータ』って
|言ってました」ということにして。
Perlで昔「連想配列」と呼んでたものを「ハッシュ」と改名したよ
うにですね.ごもっとも.でも,もっと良い名前って思い付かない
んですよねえ.当面,「歴史的な事情で『イテレータ』と呼ばれる」
という説明にしようと思ってます.
# Ruby本の原稿にもそう書いた.
この辺りの問題って私がユーザガイドで「繰り返し子」としてのイ
テレータしか説明してないのも原因の一つのような気がします.やっ
ぱりあれらの文書には引退してもらった方が良いか.
|#でも「インラインコールバック」もよく分からない……。
|#どんなのがいい名前なんでしょう……。
良いのが思い付いたら是非是非教えて下さい.
まつもと ゆきひろ /:|)