まつもと ゆきひろです 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本の原稿にもそう書いた. この辺りの問題って私がユーザガイドで「繰り返し子」としてのイ テレータしか説明してないのも原因の一つのような気がします.やっ ぱりあれらの文書には引退してもらった方が良いか. |#でも「インラインコールバック」もよく分からない……。 |#どんなのがいい名前なんでしょう……。 良いのが思い付いたら是非是非教えて下さい. まつもと ゆきひろ /:|)