我现在正在做斯卡拉课程。关于替代模型有一些讨论。它声明:
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]
的表示法是否在其他地方使用?
答案 0 :(得分:4)
你是对的,它确实以一种奇特的方式说“插入价值”。对它有一个正式和明确的符号仍然是一个好主意,事实上这是理论计算机科学中的标准符号(而不是你的课程讲师所构成的)。
特别是,“插入值”会变得更加复杂,在这种情况下,您必须担心变量被绑定应该是自由的,反之亦然。如果您对细节感兴趣,请阅读一本介绍lambda演算的教科书。