立即处理作业(球拍)并遇到了这个问题。
> (define a '(even?))
> a
(even?)
> (first a)
even?
> (even? 2)
#t
> ((first a) 2)
. . application: not a procedure;
expected a procedure that can be applied to arguments
given: even?
arguments.:
为什么这不起作用? Isn&#t; t((第一个a)2)等同于(偶数?2)??
答案 0 :(得分:1)
'(even?)
相当于(quote (even?))
,它返回一个带有符号even?
的列表(不是函数)。
如果您希望您描述的代码能够正常工作,您需要让第一个定义看起来像(define a (list even?))
,这是一个包含过程even?
的列表。