程序清单不起作用? *重要

时间:2016-02-01 03:07:28

标签: racket procedure

立即处理作业(球拍)并遇到了这个问题。

> (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)??

1 个答案:

答案 0 :(得分:1)

'(even?)相当于(quote (even?)),它返回一个带有符号even?的列表(不是函数)。

如果您希望您描述的代码能够正常工作,您需要让第一个定义看起来像(define a (list even?)),这是一个包含过程even?的列表。