1
我想了解lambda微積分。但是,我有點卡住這個表達式:TRUE和TRUE。我無法弄清楚如何才能得到如何在lambda微積分中正確減去TRUE和TRUE?
((\T F -> T) (\T F -> T))
到
(\F T F -> T)
,不
(\F -> (\T F -> T))
\是λ-簽名
我想了解lambda微積分。但是,我有點卡住這個表達式:TRUE和TRUE。我無法弄清楚如何才能得到如何在lambda微積分中正確減去TRUE和TRUE?
((\T F -> T) (\T F -> T))
到
(\F T F -> T)
,不
(\F -> (\T F -> T))
\是λ-簽名
(\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)
由最後一個規則(收縮)。
Thnx爲你的答案 - 它真的有幫助!我想我得到你在說什麼。所以,讓我直截了當地說,刪除冗餘括號的原因是因爲沒有更多的參數可以傳遞給函數體,對吧? –
爲什麼添加了'F#'標記。我希望看到一些帶有該標籤的F#代碼?我只看到'lambda-calculus' –