V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nthhdy
V2EX  ›  Lisp

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

  •  
  •   nthhdy · 2017-04-11 09:58:14 +08:00 · 5546 次点击
    这是一个创建于 2600 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    4 条回复    2022-02-12 06:14:25 +08:00
    Mistwave
        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 等等。

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

    原始论文里用 function 表达正整数,表达加减乘除。
    很简单的概念,全都用函数构造,看起来都差不多,只有烧脑。
    我相信 string (list of chars)、hash map 这种结构用函数也都能表示。
    但是写程序的时候用不到这种“技能”。
    Maxzzz
        4
    Maxzzz  
       2022-02-12 06:14:25 +08:00
    @nthhdy 如果你是做编程语言工作或者公司主力语言是函数式语言(例如 Jane Street 。Y combinator 肯定要搞懂的,不然如一楼所说,没有机会也没有兴趣接触 Functional Programming ,那 Lambda Calculus 可能确实没什么必要学习。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   991 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:42 · PVG 03:42 · LAX 12:42 · JFK 15:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.