(個人用のメモ。gauche前提の話) 本当は探索用の手続きだったけれど、本質とは関係ないのでもっと単純な例で書くことにする。 以下のようなコードがあるとする。 (define (rec n) (let loop ((i 0)) (unless (> i n) (print i) (loop (+ i 1))))) (rec 4) ;; ; => 0 ;; 1 ;; 2 ;; 3 ;; 4 ;; #<undef> 1..4までの間の数を表示するだけのコード。これを以下のように変更したい。 print以外の他の処理を行えるようにしたい。 (元の手続きは時間のかかる処理なので)解がひとつ求まったら途中で計算を打ちきりたい (他の解も知りたいので)打ち切った計算を途中から再開させたい 継続使えば簡単にできるだろうと思ったけど、そうでも無かった。 初めに書いたコード (define (rec n)