functional-programming - 用于函数式编程的 lambda 演算

标签 functional-programming lambda lambda-calculus

在 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/

相关文章:

haskell - 手动实例显示定义导致堆栈空间溢出

kotlin - 如何使用 Kleisli 访问调用链的每个函数中的上下文?

c++ - 将数学函数作为方法的输入参数传递给C++

compiler-construction - Haskell 脱糖策略

scheme - 将 lambda 函数传递给 Scheme 中的 lambda 函数

module - Elixir - 'use' 关键字有什么作用?

functional-programming - Date.now引用透明吗?

c++ - 如何为 std::fill() 使用 C++0x lambdas 局部变量?

c# - 任意成员变量的任意计算

lambda - 什么是调用/抄送?