まつもと ゆきひろです

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本の原稿にもそう書いた.

この辺りの問題って私がユーザガイドで「繰り返し子」としてのイ
テレータしか説明してないのも原因の一つのような気がします.やっ
ぱりあれらの文書には引退してもらった方が良いか.

|#でも「インラインコールバック」もよく分からない……。
|#どんなのがいい名前なんでしょう……。

良いのが思い付いたら是非是非教えて下さい.

                                まつもと ゆきひろ /:|)