簡體   English   中英

Lambda演算和教堂數字混亂

[英]Lambda calculus and church numerals confusion

我正在努力理解lambda演算和教會數字的基礎知識。 我一直在做很多閱讀和練習,但我似乎一直在試圖看看一些功能是如何工作的。

我堅持的例子如下。 也許有人可以解釋我哪里出錯了。

1號教堂的數字可以表示為:

λf. λx. f x

教會數字(m n )的取冪函數可以表示為:

λm. λn. n m

我想要做的就是通過將指數函數應用於1和1,我得到1,因為1 1 = 1.我這樣做,所以我更好地理解這些函數是如何工作的。 我的工作如下,每次都卡住了:

// Exp (1 1)
(λm. λn. n m) (λf1. λx1. f1 x1) (λf2. λx2. f2 x2)
// Substitute for m
(λn. n (λf1. λx1. f1 x1)) (λf2. λx2. f2 x2)
// Substitute for n
(λf2. λx2. f2 x2) (λf1. λx1. f1 x1)
// Substitute for f2
(λx2. (λf1. λx1. f1 x1) x2)
// Substitute for f1
λx2. (λx1. x2 x1)

在那里我被卡住了。 我已經失去了兩個f ,只留下了x ,我沒有回來。 我哪里錯了?

我哪里錯了?

無處! 你完成了。 請記住,變量名稱並不重要; 這是重要的結構。 名稱fx2沒有意義。 只關注它們的使用方式。 1號教堂的數字是

λf. λx. f x

你有

λx2. (λx1. x2 x1)

x2重命名為f ,將x1重命名為x和voilà! 你有

λf. (λx. f x)
= λf. λx. f x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM