gpt4 book ai didi

language-agnostic - 动态作用域 - 深层绑定(bind)与浅层绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 01:35:08 58 4
gpt4 key购买 nike

我一直在尝试了解浅层绑定(bind)和深层绑定(bind),维基百科并没有很好地正确解释它。假设我有以下代码,如果该语言使用动态作用域,输出会是什么

a) 深度绑定(bind)

b) 浅绑定(bind)?

x: integer := 1
y: integer := 2

procedure add
x := x + y

procedure second(P:procedure)
x:integer := 2
P()

procedure first
y:integer := 3
second(add)

----main starts here---
first()
write_integer(x)

最佳答案

深度绑定(bind)绑定(bind)过程作为参数传递时的环境

浅绑定(bind)绑定(bind)实际调用过程时的环境

因此,当 add 传递到第二个时,对于具有深度绑定(bind)的动态作用域环境是 x = 1,y = 3,x 是全局 x,因此它将 4 写入全局 x,这是 write_integer 拾取的值。

浅绑定(bind)只会向上遍历,直到找到与名称对应的最近的变量,因此答案为 1。

关于language-agnostic - 动态作用域 - 深层绑定(bind)与浅层绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1753186/

58 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com