2013-06-08 2 views
-1

Рассмотрим следующее определение:Разбирая рекурсивный процесс - SICP

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

Что такое тестовое выражение? (Написать фактическое выражение, а не его значение)

Я думаю, это просто (если (= ху), но MIT 6,001 On Line самостоятельно не принимает этот ответ

ответ

3

Тест будет:.

(= x y) 

это выражение, которое фактически возвращает логическое значение, а поведение условного выражения if зависит от него - если это #t (или вообще: любой без ложного значения) последующего части будет выполняется: 0. Только если это #fвариант часть будет выполнена: (+ x (foo (+ x 1) y)).

+2

схема интерпретирует что-либо, а не #f как истинное значение для операторов IF, COND, OR и AND. – WorBlux

+0

спасибо всем .. Я должен был получить этот. – user2465378

Смежные вопросы