如何在Lambda微积分中进行替换?

时间:2015-05-26 19:41:48

标签: matlab functional-programming wolfram-mathematica ghc lambda-calculus

我想知道如何进行以下lambda替换:

让:

M = λxy.x (λx.x)(λy.x y)

计算替换:

M[x := y xλz.z]

您是否知道在GHC,Matlab,Wolfram-Mathematica或任何其他工具中进行此类替换的某种方式,以便我可以检查它?

1 个答案:

答案 0 :(得分:1)

Google出现几秒钟

Mathematica lambda calculus

有一个Wolfram Demonstrations包可以做一些lambda演算。我不知道你是否可以使用它来评估你的表达。如果你不能直接使用它,那么很少有可能查看演示的源代码并尝试提取一行或两行代码供你自己使用,但由于使用它们,演示通常很复杂。图形表示很难使用代码。

Demo lambda

如果这不起作用那么同样的谷歌搜索也会发现格雷的“掌握Mathematica”有一个例子从第387页开始的lambda演算解释器。这可能会向你显示足够的页面,你可以为你获取该代码问题。或者用过的书籍副本可能只是用过的图书经销商网上的一美元。