在 lambda 演算中 (λ x. λ y. λ s. λ z. x s (y s z)) 用于添加两个 Church 数字,我们如何解释这一点,是否有用于函数式编程的 lambda 演算的任何好的资源?非常感谢您的帮助
最佳答案
实际上 λ f1。 λ f2。 λ s。 λ z。 (f1 s (f2 s z)) 计算加法,因为它实际上将 (f2 s z)(由 f2 表示的数字)替换为 (f1 s z) 中的“零”。
示例:让我们为 f2 取两个,s s z
以展开的形式。 f1 是一个:s z
.替换最后一个 z
通过 f2,你会得到 s s s z
,三个的扩展形式。
用黑板和挥手会更容易,对不起。
关于functional-programming - 用于函数式编程的 lambda 演算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1662568/