lambda calculus 解决了什么问题? 为什么会出现这个理论? 为什么说它很有价值?

2017-04-11 09:58:14 +08:00
 nthhdy

最近对 lambda calculus 比较感兴趣,读了一些博客和文章,了解了 expression, abstraction, application, a 变换, b 变换, church numbers, Y combinator 等等这些东西,脑子里有了一些简单的推倒. 各文章关于这些内容大同小异,却很少触及题目所述问题,既"这个东西到底有啥用".

我不了解计算原理,可计算性问题,形式系统,逻辑学什么的这些概念.许多文章说起这些概念,然后一句带过,让我感觉这背后水很深的样子,下面无从下手了.

大家是怎么学过来的?一定要了解这些数学理论,才能回答我的问题吗? 求教站内大牛.

5777 次点击
所在节点    Lisp
4 条回复
Mistwave
2017-05-02 14:15:13 +08:00
楼主所说的 lambda calculus 是无类型 lambda 演算,就是 Church 提出的那个,是一套计算系统(计算模型,whatever ),目的就是拿来研究计算过程(函数定义、函数应用、递归函数 blabla )。

有什么用呢,lambda calculus 和图灵机等价,那么可以拿来制造计算机(广义,可以用来计算的机器),设计编程语言啊(如 Lisp )。

然而我们现在用的 CPU 都是基于图灵机的,所以就算是 Lisp 也仅仅是用图灵机模拟的 lambda 演算。

那么事实上,学这个的作用,就是满足自己的好奇心了吧(笑

当然由 lambda calculus 发展而来的很多概念,是可以提升编程能力的,比如 closure,continuation 等等。

欢迎进一步的讨论
Maxzzz
2022-02-03 07:32:39 +08:00
Lambda Calculus 是 Functional Programming 的妈,可以将它看作一门极度简化,直接触及本质的编程语言。所谓万变不离其宗,学扎实了 Lambda Calculus ,那以后无论遇到什么千奇百怪的 Functional Language [Lisp, Haskell, OCaml...] 都可以快速上手。
nthhdy
2022-02-07 10:15:56 +08:00
@Maxzzz 你觉得 Y combinator 有没有必要搞懂。

原始论文里用 function 表达正整数,表达加减乘除。
很简单的概念,全都用函数构造,看起来都差不多,只有烧脑。
我相信 string (list of chars)、hash map 这种结构用函数也都能表示。
但是写程序的时候用不到这种“技能”。
Maxzzz
2022-02-12 06:14:25 +08:00
@nthhdy 如果你是做编程语言工作或者公司主力语言是函数式语言(例如 Jane Street 。Y combinator 肯定要搞懂的,不然如一楼所说,没有机会也没有兴趣接触 Functional Programming ,那 Lambda Calculus 可能确实没什么必要学习。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/353991

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX