2015-10-26 80 views
1

我一直在這個問題上抨擊我的頭,有一段時間我無法弄清楚。我讀過維基百科和幾本書「自由變量和約束變量」的自由變量的定義,但我不能得到正確的答案函數式編程中的自由和綁定標識符

考慮下面的代碼:

local A B C=1 D=2 in 
    A = 1 
    proc {Add E F G} 
    E = A + D + F 
    end 
end 

其中這些標識符(A,B,C,D,E,F,G)是免費標識符?

回答

3

自由標識符的概念總是帶有上下文。如果您僅考慮E=A+D+F這四個標識符是免費的。但是如果你考慮過程定義,E和F現在被束縛,因爲它們是形式參數。因此,免費標識符是A和D.最後,如果考慮到您提供的全部代碼,則由於所有標識符均已聲明,因此沒有可用標識符。

參考:概念,由彼得·範·羅伊和賽義夫Haridi技術和計算機編程的模型。

57頁的末尾和第58頁對於這個問題有意思。

前三章可通過EDX平臺上,如果你報名參加課程Paradigms of Computer Programming

+0

謝謝,這是我服用的過程中,問題是從那裏。 –

1

任何指令的自由標識符都是指令內部與指令外聲明相對應的那些標識符。

因此它接縫A和D是答案。