私はしばらくの間、この質問に頭を悩ませてきましたが、理解できません。ウィキペディアや数冊の本から自由変数「自由変数と束縛変数」の定義を読みましたが、正しい答えが得られません
次のコードを検討してください。
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) のうち、自由な識別子はどれですか?
私はしばらくの間、この質問に頭を悩ませてきましたが、理解できません。ウィキペディアや数冊の本から自由変数「自由変数と束縛変数」の定義を読みましたが、正しい答えが得られません
次のコードを検討してください。
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) のうち、自由な識別子はどれですか?
フリー識別子の概念には、常にコンテキストが伴います。ステートメントのみを考慮する場合E=A+D+F
、4 つの識別子は自由です。しかし、手続きの定義を考えると、E と F は仮パラメーターであるためバインドされています。したがって、自由な識別子は A と D です。最後に、指定したコード全体を考慮すると、すべての識別子が宣言されているため、自由な識別子はありません。
参照 : ピーター ヴァン ロイとセイフ ハリディによるコンピューター プログラミングの概念、手法、およびモデル。
57ページの終わりと58ページは、この件に関して興味深いものです。
Paradigms of Computer Programmingコースを登録すると、最初の 3 つの章が edX プラットフォームで利用可能になります。