ごとけんです まつもと ゆきひろさん> > |結局イテレータブロックというのは名前はイテレータなのだけど、 > |yield 自体は単にイテレータの引数を使ってイテレータブロック内を > |実行するというだけなのですね。 > > そうです.ですから,yieldの呼び出し方によっては全然繰り返し > を行わない場合もありえます.詐欺みたいですね. > > 「インラインコールバック」という説明を最近思い付いたんですけ > ど,余計に分からなくなるかも. ふと思いついたんですけど、 abstraction っていう言葉は プログラマさんには意味不明なんでしょうか? ラムダ計算の用語で λx.M における λ のことを abstraction operator っていうんです。 僕の印象では「イテレータとして呼ばれる」という ruby 用語の意味するところは、 「(イテレータブロックで表された)匿名関数を引数として 渡されてる」ような気がしてるわけです。 で、匿名関数を作る作用素(ruby だと proc かな?)は abstraction operator というので、 iterator block を abstraction block というのは結構いいんじゃないかと 思った次第です。 で、本当に繰り返しを表す abstraction block のことを iterator block というと。 # やっぱ分かりにくいかなあ -- ごとけん@生涯一初心者 (;_;)