在lambda微積分(λx。λy。λs。λz。xs(ysz))用於添加兩個Church數字我們該如何解釋,是否有任何好的資源lambda函數式編程的微積分?您的幫助非常感謝用於函數式編程的λ演算
4
A
回答
7
其實λf1。 λf2。 λs。 λz。 (f1 s(f2 s z))計算加法,因爲它實際上將f2表示的數字代入(f2 s z)到f1 s z內部的「零」。
示例:讓我們以展開形式爲f2,s s z
取兩個。 f1是一個:s z
。用f2替換最後的z
,並得到s s s z
,擴展形式爲三。
用黑板和手揮手會很容易,對不起。
1
在lambda微積分中,您根據其引發的操作對數據類型進行編碼。舉例來說,一個布爾是隻是一個選擇函數,它在輸入兩個值a和b,要麼返回a或b:
true = \a,b.a false = \a,b.b
什麼用自然數的?其主要計算目的是爲 提供一個迭代的界限。爲f的n次出現
n = \f,x.f(f(....(f x)...))
:所以,我們編寫一個自然數作爲操作 ,在輸入需要一個函數f,x的值,並重復f的應用 X上的n次。
現在,如果你想要遍歷N + M次函數f從X 必須開始迭代n次首發,這是(NFX),然後重複用於M個附加 倍,從以前的結果出發,這是
m f (n f x)
同樣,如果你想重複N * m次需要迭代m次 迭代n次f的操作(如在兩個嵌套循環),也就是
m (n f) x
前面對數據類型的編碼更詳細地用構造函數和相應消除器(所謂的 Bohm-Berarducci編碼)的術語 進行了解釋。
相關問題
- 1. 函數式編程SOLID用於函數式編程
- 2. r data.table語言中的函數式編程/元編程/計算
- 3. 函數式編程函數
- 4. 函數式編程
- 5. Python的函數式編程
- 6. 函數式編程教程
- 7. 介紹到的λ/匿名函數
- 8. 對於使用函數式編程的任何項目?
- 9. 函數式編程的副作用
- 10. 反應式編程和π演算是否有共同之處?
- 11. 函數式編程和方程解算器
- 12. SCHEME | λ與λ?
- 13. 執行多個統計計算的函數式編程原理
- 14. 學習函數式編程
- 15. 函數式編程和Haskell
- 16. SML-函數式編程
- 17. 函數式編程新手
- 18. 函數式編程練習
- 19. 函數式編程公理
- 20. 求和函數式編程
- 21. 函數式編程文檔
- 22. 函數式編程示例
- 23. 用於Java中多項式演算的庫?
- 24. PyQT將λ函數連接到信號
- 25. 如何在純函數式編程中交換函數(例如用於測試)
- 26. 以編程方式調用javascript函數
- 27. 函數式編程使用鏈表
- 28. 函數式編程副作用澄清
- 29. 函數式編程:副作用
- 30. 使用Scala進行函數式編程
檢查頁面右側的「相關」部分:http://stackoverflow.com/questions/515413/what-are-some-resources-for-learning-lambda-calculus,http:// stackoverflow .com/questions/1051033/lambda-calculus-and-church-numerals-confusion等 – Groo 2009-11-02 17:27:53