2017-04-08 90 views
1

我想了解lambda微積分。但是,我有點卡住這個表達式:TRUE和TRUE。我無法弄清楚如何才能得到如何在lambda微積分中正確減去TRUE和TRUE?

((\T F -> T) (\T F -> T)) 

(\F T F -> T) 

,不

(\F -> (\T F -> T)) 

\是λ-簽名

graphical explanation

+1

爲什麼添加了'F#'標記。我希望看到一些帶有該標籤的F#代碼?我只看到'lambda-calculus' –

回答

2
(\F T F -> T) 

(\F -> (\T F -> T)) 

是一樣的。

https://en.wikipedia.org/wiki/Lambda_calculus_definition#Notation

  • 最外括號被丟棄:的M N代替(M N)
  • [...]
  • 一個抽象的主體延伸直到右儘可能:λx. M N裝置λx. (M N)和不是(λx. M) N
  • 一系列的抽象是合同的:λx. λy. λz. N是abb reviated如λxyz. N

特別地,

(\F -> (\T F -> T)) 

可以寫成

(\F -> \T F -> T) 

,因爲我們可以刪除多餘的括號和外拉姆達的主體最右延伸儘可能,然後可以寫入

(\F -> \T -> \F -> T) 

(\F T F -> T) 

由最後一個規則(收縮)。

+0

Thnx爲你的答案 - 它真的有幫助!我想我得到你在說什麼。所以,讓我直截了當地說,刪除冗餘括號的原因是因爲沒有更多的參數可以傳遞給函數體,對吧? –