エクササイズ1.5。 Ben Bitdiddleは、彼が直面している通訳者が申請注文 評価または通常の注文評価を使用しているかどうかを判断するためのテストを発明しました。彼そして((試験XY)()= X 0(IF y)を定義する)SICPエクササイズ1.5
((p)(p)を定義する)
を
:彼は、次の2つの 手順を定義します評価される式
(テスト0(P))
ベンは Applicativeのオーダーの評価を使用してインタプリタで何の行動を観察するのだろうか?正常注文の評価を使用する インタプリタを使用して、どのような行動を観察しますか?
私は演習の答えを理解しています。私の質問は、どのように(p)がpと解釈されるかにある。例えば、(test 0(p))はインタプリタをハングさせる(期待される)が、上記の定義を持つ(test 0 p)はすぐに0と評価される。
また、定義を(define(p)p)に変更したとします。与えられた定義では、(test 0(p))と(test 0 p)の両方が0と評価されます。なぜこれが起こりますか?なぜ通訳はハングアップしないのですか?私はDr. RacketをSICPパッケージと共に使用しています。
+1簡潔な答えです。また、http://codepad.orgを試してみてください。 –
ありがとうございます。私も答えを探しています。 – user1166240