From: Shugo Maeda Date: 1999-04-06T17:26:41+09:00 Subject: [ruby-list:13349] Re: iterator for Dummies( was Re: Ruby anywhere ) 前田です。 At Tue, 6 Apr 1999 10:54:05 +0900, NAKAMURA, Hiroshi wrote: > どうもなひはまだ,上記の文において前田さんが「イテレータ」として > 指されているものを,理解できていないような気がします. > ここで言われている「イテレータ」は, > > 「(メソッドのコンテキストで評価するための)ブロック付きで > 呼び出される,メソッド」 > > で,よろしいのでしょうか. はい。 > この時,「if,catch,call/ccは,ブロック付きのメソッド呼び出しである」 > ということになるのかしら. Rubyのもともとのifはイテレータではありませんが、同様のものをイテレー タとして用意することは、可能だという意味です。 # 可能だからといって有用だとは限りませんが。 catch, call/ccは、 catch(:foo) { ... throw(:foo) ... } callcc { |c| ... c.call ... } という例でイテレータであることを理解していただけます? > 実はcall/ccの詳細は理解してませんが,^^; > call/ccが上がっているということは,「Rubyにおいて」ではなく, > 「一般的に」なんですよね? Schemeなどにはイテレータはないので「一般的に」とは言えません。 -- 前田 修吾