ユーザー入力を受け入れ、計算し、出力を与えるSchemeアプリケーションがあります。ある種のエラー処理とスムーズな終了方法を有効にすることで、より堅牢にしたいと考えています。Call with current continuation は、ここでこのギャップを埋めるものと思われますが、それを実装する方法がよくわかりません。
現時点では、ユーザーが無効な入力を入力すると、プログラムがクラッシュして終了します。ユーザーをアプリケーションに保持し、代わりにエラーメッセージを表示したいだけです。これが私の方法の概要ですが、通常はシステムをクラッシュさせるエラーが発生した場合にエラーを出してプログラムに保持するように実装する場所がわかりません。
(define (handle_err)
(call/cc
(lambda (a)
(display "exception handled: a"))))
また、プログラムをきれいに終了したいと思います。つまり、クラッシュ出口でもブレークでもありません。ユーザーに「leave」と入力してもらい、プログラムを閉じてインタープリターに戻してもらいたいと思います。私のアウトラインは上記のように見えますが、ユーザーがプログラムを離れることはなく、入力プロンプトに戻るだけです。
どんなアイデアでも大歓迎です。