Answers:
Lambda演算是逻辑,类别理论,类型理论,形式验证等基础知识。基本上,与编程语言语义和形式逻辑有关。如此基本的形式主义使在这些领域工作的人们甚至不质疑它的好处。
我认为它对于理解函数式编程非常有用,因为它为您提供了函数式编程的本质。功能,应用,替代。在此基础上,您可以建立有关功能程序及其转换的推理能力。高阶函数轻而易举。
当然,如果没有lambda演算,就可以学习函数式编程,但是如果没有lambda演算,就永远无法真正理解函数式编程。
您正在寻求计算机科学和逻辑之外的应用程序。这很容易找到,例如在代数拓扑中,具有笛卡尔封闭的空间类别很方便,请参见nLab 上拓扑空间的便利类别。与笛卡尔封闭类别相对应的形式语言恰好是 -calculus。让我用一个非常简单的示例说明如何使用它。
首先,作为热身练习,假设有人问您是否由定义的函数是可区分的。您实际上不必证明它是,只需观察它是可微函数的组成,因此是可微的。换句话说,您根据定义的形式得出了简单的结论。 f (x )= x 2 e x + log (1 + x 2)
现在来看真实的例子。假设有人问您是否由定义 的函数 是连续的。可以立即回答“是”,因为该函数是使用 -calculus 定义的,并且是从连续映射,,等开始定义的。λ 最大∫ 罪
-calculus的各种扩展使得在其他领域中可以做同样的事情。例如,由于平滑的topos是笛卡尔封闭类别,因此使用 -calculus 定义的任何地图(从导数和实数的环结构开始)都可以自动生成(并且您可以根据需要添加指数函数)光滑。(实际上,平滑顶点的主要推力是存在幂零无穷小,这些无穷无穷小使您可以有意义地说出诸如“我们将光盘分成无限细的等腰三角形”之类的东西。)λ
Microsoft LINQ(语言集成查询)将功能编程功能移植到过程语言中。它广泛且直接地使用 -calculus来解开依赖关系并隔离可委托给数据库服务器的表达式树的各个部分。这是一种非常实用的应用,具有很高的商业价值。
我已经使用一种功能语言编写了一个小型商业应用程序,并且可以向您保证,尽管对学者和研究人员来说非常值得,但它们在商业上不如程序表亲有用。确实,这是课程中所涉及的马匹问题,最实用的是一种可以根据需要在过程或功能上使用的语言。结果,为支持LINQ而引入(为C#提供)的功能(例如 -expressions )在数据库查询的上下文之外得到了很多使用。
因此,当您最终发现自己想要支付报酬而不得不做恶事时,即使您几乎肯定不会使用功能语言,也可能会发现 -calculus比您预期的要有用。
对此一无所知,我听说语言学家正在使用lambda演算。
http://www.sfu.ca/~jeffpell/Ling406/LambdaAbstractionOH.pdf,https://files.nyu.edu/cb125/public/Lambda/