在演算(λX。λλS y时。λŽ。×S个(Y小号Z))用于增加两个Church数我们如何解释这个原因,是有任何好的资源函数编程lambda演算?你的帮助是非常赞赏

有帮助吗?

解决方案

实际上λF1。 λF2。 λ秒。 λž。 (F1 S(F2小号Z))计算此外,因为它是在效果代(F2小号Z),由F2表示的数目,以 “零” 内(F1小号z)表示。

实施例:现在让我们两个用于F2,s s z在膨胀形式。 F1是一个:s z。通过F2替换最后z,你会得到s s s z,展开方式三。

此将与黑板和挥手,对不起。

更容易

其他提示

在演算,就在它诱导操作方面编写一个数据类型。例如,一个布尔值是一刚一选择函数,它在输入的两个值a和b,要么返回或b:

                      true = \a,b.a   false = \a,b.b

什么用的自然数的?其主要计算的目的是 提供一种结合到迭代。因此,我们编写一个自然数作为操作 在输入接受一个函数f,x的值,并重复该应用程序 F的过X n次:

                        n = \f,x.f(f(....(f x)...))

和f的n次出现。

现在,如果要遍历的n + m次函数f从x中开始 你必须开始迭代n次,即(N·X),然后重复对于m 附加次数,从以前的结果出发,即

                                m f (n f x)

同样,如果你想重复N * m次需要迭代m次 迭代n次的F(如在两个嵌套循环)的操作,即

                                 m (n f) x  

数据类型的先前编码中术语更正式解释 构造函数和相应的除水的(即所谓的 波姆-Berarducci编码)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top