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) のうち、自由な識別子はどれですか?

4

2 に答える 2

4

フリー識別子の概念には、常にコンテキストが伴います。ステートメントのみを考慮する場合E=A+D+F、4 つの識別子は自由です。しかし、手続きの定義を考えると、E と F は仮パラメーターであるためバインドされています。したがって、自由な識別子は A と D です。最後に、指定したコード全体を考慮すると、すべての識別子が宣言されているため、自由な識別子はありません。

参照 : ピーター ヴァン ロイとセイフ ハリディによるコンピューター プログラミングの概念、手法、およびモデル。

57ページの終わりと58ページは、この件に関して興味深いものです。

Paradigms of Computer Programmingコースを登録すると、最初の 3 つの章が edX プラットフォームで利用可能になります。

于 2015-10-27T12:51:19.870 に答える