限定継続。
delimited continuation を知った。
- http://lambda-the-ultimate.org/node/1197
- 日本語 http://www.jst.go.jp/kisoken/presto/seika/h16_jigo/kinou.pdf
1 + (2 * (call/cc \.k 3 + (k 4)))
-> 1 + (2 * 3 + k 4))) where k = (1 + (2 * □))
-> 1 + (2 * 4)
-> 9
1 + <2 * (shift k.3 + (k 4))
-> 1 + <3 + (k 4)> where k = <2 * □>
-> 1 + <3 + <2 * 4>>
-> 12
<...> が reset を表す
範囲を絞れる&ぶっとばないってかんじか?