最近对 lambda calculus 比较感兴趣,读了一些博客和文章,了解了 expression, abstraction, application, a 变换, b 变换, church numbers, Y combinator 等等这些东西,脑子里有了一些简单的推倒. 各文章关于这些内容大同小异,却很少触及题目所述问题,既"这个东西到底有啥用".
我不了解计算原理,可计算性问题,形式系统,逻辑学什么的这些概念.许多文章说起这些概念,然后一句带过,让我感觉这背后水很深的样子,下面无从下手了.
大家是怎么学过来的?一定要了解这些数学理论,才能回答我的问题吗? 求教站内大牛.
1
Mistwave 2017-05-02 14:15:13 +08:00 1
楼主所说的 lambda calculus 是无类型 lambda 演算,就是 Church 提出的那个,是一套计算系统(计算模型,whatever ),目的就是拿来研究计算过程(函数定义、函数应用、递归函数 blabla )。
有什么用呢,lambda calculus 和图灵机等价,那么可以拿来制造计算机(广义,可以用来计算的机器),设计编程语言啊(如 Lisp )。 然而我们现在用的 CPU 都是基于图灵机的,所以就算是 Lisp 也仅仅是用图灵机模拟的 lambda 演算。 那么事实上,学这个的作用,就是满足自己的好奇心了吧(笑 当然由 lambda calculus 发展而来的很多概念,是可以提升编程能力的,比如 closure,continuation 等等。 欢迎进一步的讨论 |
2
Maxzzz 2022-02-03 07:32:39 +08:00
Lambda Calculus 是 Functional Programming 的妈,可以将它看作一门极度简化,直接触及本质的编程语言。所谓万变不离其宗,学扎实了 Lambda Calculus ,那以后无论遇到什么千奇百怪的 Functional Language [Lisp, Haskell, OCaml...] 都可以快速上手。
|