Я попытался написать (простую, т.е. без eqan?
) one?
функцию вроде такой:
(define one?
(lambda (n)
((= 1 n))))
Но приведенное выше не работает, потому что, когда я называю это так:
(one? 1)
Меня встречает эта ошибка:
procedure application: expected procedure, given: #t (no arguments)
Правильный способ (из Маленького интригана) написать это так:
(define one?
(lambda (n)
(cond
(else (= 1 n)))))
Почему необходимо использовать cond
с предложением else
вместо того, чтобы просто возвращать (= 1 n)
?