-1

次の定義を検討してください。

   (define foo
     (lambda (x y)
        (if (= x y)
            0
            (+ x (foo (+ x 1) y)))))

テスト式とは何ですか?(値ではなく、実際の式を書きます)

(if (= xy) だけだと思いますが、MIT 6.001 オンライン チューターはその答えを受け入れていません。

4

1 に答える 1

3

テストは次のようになります。

(= x y)

これは実際にブール値を返す式であり、if条件式の動作はそれに依存します - それが#t(または一般的に: false でない値) である場合、結果部分が実行されます: 0. #fそれが代替部分である場合にのみ実行されます: (+ x (foo (+ x 1) y)).

于 2013-06-08T01:46:28.460 に答える