yaotti's diary

Software is Eating the World

はじるび2

callccがあるみたいだ.でも今後消える可能性もあるとか.


callccのわかりやすい説明:Route 477 - Ruby勉強会@関西-16「30分でわかるcallccの使い方」

rubyでfibonacci

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
def fib(n)
  cnt = nil
  a, b = 1, 0
  callcc {|c|cnt=c}             # ここで以下の内容をセーブ
  if n==0
    return b
  else
    a, b, n = a+b, a, n-1
    cnt.call                    # セーブポイントにロードして続く
  end
end

p fib(10)