1
所以这行代码错误:程序?返回变量
(procedure? (eval x))
计算结果为真时,x是一个过程,但如果x是因为我碰到下面的错误变量不起作用:
cannot reference undefined identifier
如何重写代码片段,以便在x为变量时评估为false,在x为true时为true?
所以这行代码错误:程序?返回变量
(procedure? (eval x))
计算结果为真时,x是一个过程,但如果x是因为我碰到下面的错误变量不起作用:
cannot reference undefined identifier
如何重写代码片段,以便在x为变量时评估为false,在x为true时为true?
为什么使用eval
?
> (define x (lambda (e) (+ e 1)))
> (procedure? x)
#t
> (define y '(1 2 3))
> (procedure? y)
#f
> (define z 3)
> (procedure? z)
#f
:
x
将自动作为参数传递给
procedure?
,所以你可以只使用
(procedure? x)
之前评估