Rubyちょうたのしい日記

 | 

2006-08-08

JavaScriptのyieldと、Rubycallcc (4) はてなブックマーク - JavaScriptのyieldと、Rubyのcallcc (4) - Rubyちょうたのしい日記

 どう作ればいいんだろう?

 フィボナッチ数を吐くループは作れる。それを好きなときに呼び出したい……

 gotoしたら帰ってこれないじゃん。

 だから戻る先は使う元。使う側で……えー、あー。

 継続。継続っていうやつだこれは。継続かわいいよ継続でおなじみの。

 http://www.shiro.dreamhost.com/scheme/docs/cont-j.html

 相変わらず意味がよくわからないが、末尾再帰と関連があるらしい。

 よくわからないまま再帰で書いてみる。

def fib(a=0, b=1, &block)
  block.call b
  fib b, a+b, &block
end

fib{|n| p n } #=> 1, 1, 2, 3, 5, 8, 13, ...

 (つづく)

 |