私は最近、SICP を読み始め、本の演習を行いました。コマンドラインに両方の mit-scheme をインストールし、少しいじった後、DrRacket に出くわし、http://www.neilvandyke.org/racket-sicp/から SICP コンポーネントをインストールしました。
Excercise 1.10に来るまで、そして本に書かれているように関数を書いたときまで、すべてが正常に機能していました:
(define (A x y)
(cond ((= y 0) 0)
((= x 0) (* 2 y))
((= y 1) 2)
(else (A (- x 1)
(A x (- y 1))))))
次に、cmd + Rでコードを実行し、replからこれを呼び出すと、次のようになります。
> (A 1 10)
エラーが発生します
A: undefined;
cannot reference an identifier before its definition
ただし、コマンド ラインにインストールされたバージョンでも同じコードが機能します。DrRacket mit-scheme の実装で何かが壊れているのでしょうか、それともここで何か間違ったことをしていますか?
Mac OS X Yosemite で DrRacket バージョン 6.1.1(m3) を使用しています
どんな助けでも大歓迎です、ありがとう!