無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

Continuation

Continuationで中断した処理を再開します。

  1. 中断する場所で組み込み関数「callcc」を実行。
  2. ブロックに渡されるContinuationを記録
  3. 後でContinuation#callを実行すると、「callcc」を実行した位置に戻って処理を再開できます。
continuation = nil
puts "start"

i = callcc { |cont|    # callccで現在の状態を記録
  continuation = cont  # ブロックの引数として渡されるContinuationを保存する
  puts "callcc"        
  0                    # callccの戻り値はブロックの評価値。この場合、0
}
puts i

# continuation.callでcallccを実行した位置まで戻って処理を再開。
# continuation.callの引数が再開時のcallccの戻り値になる。
continuation.call(i+1) if i < 10

出力:

start
callcc
0
1
2
3
4
5
6
7
8
9
10