我试着写一个(简单的,即没有eqan?
)one?
功能就像这样:方案:为什么在这里需要使用cond?
(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)
?
* 79 *页(第4版) – 2009-12-28 21:52:12
+1烨,这个问题是因为我有额外的括号;感谢您的解释。 – 2009-12-28 22:41:47
......哦,不,我刚刚意识到,如果我在提问之前查看了5厘米的页面,我会在书的同一页面看到没有'cond'的'one?'功能;学习到教训了。 – 2009-12-28 22:53:25