2013-04-09 55 views
2

我正在做一個scala課程。關於替代模型有一些討論。它指出:替代模型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

你說得對,它基本上是以一種奇特的方式說「插入價值」。對它有一個正式和明確的記號仍然是一個好主意,實際上這是理論計算機科學中的標準記號(而不是你課程的講師編寫的)。

尤其是,在你必須擔心變量被綁定的情況下,「插入值」變得更加複雜,這種變化應該是免費的,反之亦然。如果你對細節感興趣,可以參考一下lambda微積分的教科書。

+0

感謝根據這個:http://en.wikipedia.org/wiki/Lambda_calculus:=用於替代。這門課的講師使用/爲它。我想知道爲什麼? – 2013-04-09 14:29:20

+0

在一階邏輯和術語重寫的文獻中,'/'在我的回憶中比':='更普遍。 – 2013-04-09 14:47:24

+0

@Randall Schulz謝謝你有什麼參考?謝謝。 – 2013-04-09 16:48:41