2016-11-06 41 views

回答

0

變量在引用(使用)之前需要有一個綁定。

如果你有

(define deriv-squared (square-a-procedure deriv)) 

然後(square-a-procedure deriv)評估值,結果 被命名爲deriv-squared。在(square-a-procedure deriv)的評估期間,查找deriv的值。因此:deriv的定義必須放在deriv-squared的定義之前。

(我的猜測是,你放置的deriv定義進一步下跌的源文件中)。

現在爲什麼沒有你的第一個定義的工作?

(define (deriv-squared f) (square-a-procedure (deriv f))) 

這是短於:

(define deriv-squared 
    (lambda (f) 
     (square-a-procedure (deriv f)))) 

這裏計算爲一個過程的(lambda (f) (square-a-procedure (deriv f))))。 但是在使用該過程之前不會引用deriv。因此,如果在使用deriv-squared之前定義了deriv,則一切正常。

相關問題