Учитывая следующий код:Задержка оценки на схеме
(define (my-if condition iftrue iffalse)
(cond (condition iftrue)
(else iffalse)))
'-----example1
(my-if #t
(display "my if was true!")
(display "my if was false!"))
(newline)
'-----example2
(my-if #t
(display "my if was true!")
(+ 2 3))
почему бы пример 1 оценить оба параметра сразу давая выход
my if was true!my if was false!
еще в примере 2, только
my if was true!
- выход?
Это потому, что display
никогда не задерживается, но арифметические операторы, или это что-то еще?
Вы имели в виду '(дисплей«мой, если был ложным!»)' Для случая еще, не так ли? –
@AlexKnauth Yup, спасибо. Теперь это исправлено! –