4

我现在正在做一个scala课程。有一些关于替代模型的讨论。它指出:

def f(x1,...,xn) = B; ... f(v1,..., vn)
then
def f(x1,...,xn) = B; ... [v1/x1,...,vn/xn]B

Here, [v1/x1,...,vn/xn]B means:
The expression B in which all occurrences of xi have been replaced
by vi.
[v1/x1,...,vn/xn] is called a substitution

我在这里有两个问题:

这里有什么大概念吗? 对我来说,这只是plug the values in一种花哨的说法。 用于替换的符号是否[v1/x1,...,vn/xn]在其他任何地方使用?

4

1 回答 1

4

你是对的,它本质上确实以一种奇特的方式说“插入值”。为其提供正式且明确的符号仍然是一个好主意,实际上这是理论计算机科学中的标准符号(而不是您的课程讲师编造的东西)。

特别是,“插入值”在您必须担心被绑定的变量应该是自由的情况下变得更加复杂,反之亦然。如果你对细节感兴趣,可以拿一本介绍 lambda 演算的教科书。

于 2013-04-09T13:49:49.757 回答