一段时间以来,我一直在努力解决这个问题,但我无法弄清楚。我已经从维基百科和几本书中阅读了自由变量“自由变量和绑定变量”的定义,但我无法得到正确的答案
考虑以下代码:
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
,则四个标识符是免费的。但是如果考虑过程定义,E 和 F 现在是绑定的,因为它们是形式参数。所以自由标识符是 A 和 D。最后,如果你考虑你给出的整个代码,没有自由标识符,因为所有标识符都被声明了。
参考:Peter Van Roy 和 Seif Haridi 的计算机编程概念、技术和模型。
第 57 页的结尾和第 58 页对这个问题很感兴趣。
如果您注册计算机编程范式课程,前三章可在 edX 平台上获得
任何指令的自由标识符是指令内出现的标识符,这些标识符对应于指令外的声明。
因此,A 和 D 似乎是答案。