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,则四个标识符是免费的。但是如果考虑过程定义,E 和 F 现在是绑定的,因为它们是形式参数。所以自由标识符是 A 和 D。最后,如果你考虑你给出的整个代码,没有自由标识符,因为所有标识符都被声明了。

参考:Peter Van Roy 和 Seif Haridi 的计算机编程概念、技术和模型。

第 57 页的结尾和第 58 页对这个问题很感兴趣。

如果您注册计算机编程范式课程,前三章可在 edX 平台上获得

于 2015-10-27T12:51:19.870 回答
2

任何指令的自由标识符是指令内出现的标识符,这些标识符对应于指令外的声明。

因此,A 和 D 似乎是答案。

于 2015-10-26T21:18:11.277 回答