call/ccは「引数を1つとる関数」である。 call/ccは「引数を1つとるプロシージャを1つ引数にとる関数」である。 ということは、call/ccにcall/ccを引数として与えられる。(call/cc call/cc)これは何か。 おさらいから。call/ccは引数を1つとるプロシージャを引数にとる。(call/cc (lambda (k) ...)) ; (A)これをなんとなく評価してみると、内側の(lambda (k) ...)に適当な引数を与えて評価されたかのような結果が得られる。gosh> (call/cc (lambda (k) 1)) 1 gosh> (call/cc (lambda (k) (odd? 1))) #tこのときの適当な引数が継続である。つまり、(A)を評価するとそのときの継続を引数にして内側の(lambda (k) ...)が評価される。これがcall/