提问人:bobaloogie 提问时间:10/30/2021 更新时间:10/30/2021 访问量:67
绑定到自由变量的变量仍然是自由变量吗?
Are variables bounded to free variables still free variables?
问:
我正在研究教科书中关于变量是自由的还是有约束力的一些问题。我特别不确定这两个。
首先,我想确保我理解自由与有界的概念。我相当确定这个 x 是以下自由变量:
variable x is free in expression "x"
我相信这是真的,但我只是想确定一下。
然而,这两个问题我不太确定。
(/ (+ 1 x) (let x 2 (+ x x)))
,
(let x y (/ (+ 1 x) (let x 2 (+ x x))))
对于顶部表达式,第一个子表达式中的 x 是未绑定的(对吗?),但第二个子表达式中的 x 绑定到 2,那么这是否意味着整个表达式的 x 是未绑定的?
对于底部表达式,x 绑定到 y,但 y 是一个自由变量 (?)。那么 x 是自由的,因为 y 是自由的,还是因为 x 仍然绑定到 y 而绑定的?
答:
0赞
Bergi
10/30/2021
#1
对于 ,第一个子表达式中的 是未绑定的,但在第二个子表达式中是绑定的 ,那么这是否意味着 就整个表达式而言是未绑定的?
(/ (+ 1 x) (let x 2 (+ x x)))
x
x
2
x
是的。尽管我只对具体的变量表达式使用术语“is bound”或“is free”,而不是名称。正如你所看到的,“”指的是什么,这是模棱两可的。x
我会说“整个表达式有一个自由变量 x
”,这是您在尝试计算表达式时通常关心的。
对于 ,绑定到 ,但是一个自由变量。所以是自由的,因为是自由的,还是被束缚的,因为仍然被束缚?
(let x y (/ (+ 1 x) (let x 2 (+ x x))))
x
y
y
x
y
x
y
是绑定的(并且可以替换)。 是免费的。x
y
评论