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)
之前評估