私は、教育目的で、機能的な方法でラケットに数字当てゲームを実装しようとしています。私の問題は、のようにエラーで関数を停止しなければならないこと(error "YOU GUESSED!")
です。エラー関数は、ラケットのドキュメントで見つけたものです。この条件を停止するエラーのない方法はありますか?
注: stop-whenについて読みましたが、まだビッグバンには行きたくありません。
(define guess-my-number (lambda ()
(letrec ([my-number (random 100)]
[choices-left 7]
[game (lambda (choices-left)
(if (> choices-left 0)
(let ([user-guess (read)])
(cond [(> user-guess my-number) (display "That was too high!")]
[(< user-guess my-number) (display "That was too small!")]
[(= user-guess my-number) (error "YOU GUESSED!")])
(game (- choices-left 1)))
(display "Here ends the game!!")))])
(game choices-left))))