【问题标题】:What are some resources for learning Lambda Calculus? [closed]有哪些学习 Lambda 演算的资源? [关闭]
【发布时间】:2010-10-05 15:36:54
【问题描述】:

所以Lambda Calculus 上的维基百科条目很有趣,但我已经完成了。我希望深入一点,更好地理解 Lambda 演算。

谁能推荐他们认为最好的 Lambda 微积分书籍或入门书?

【问题讨论】:

  • 查看 math.sx 问题Learning Lambda Calculus
  • 我投票决定重新开放,因为尽管从某些观点来看离题,但该主题确实是编程的核心,我们应该听取其他意见。

标签: lambda-calculus


【解决方案1】:

如果您已完成 Wikipedia 条目,请点击其链接到在线 Structure and Interpretation of Computer Programs、完成作业或阅读 the book

【讨论】:

  • +1 这是经典资源。这是我大学第一门编程课程的教材。
  • 同上。虽然它更多的是关于实用性,而不是关于 lambda 演算本身的形式性。
  • +1 现在阅读...而不是 6-7 年前...震撼了开发人员/编码员/程序员的世界。
  • @gimel SICP 如何帮助学习 lambda 演算。
  • SICP 对学习 Lambda 微积分没有帮助。这不是一本关于 Lambda 演算的书,而是一本关于编程的书。
【解决方案2】:

我发现 Chris Hankin 的“An introduction to Lambda Calculi for Computer Scientists”非常好,但我只真正将它用于一堂课 - 并没有在现实世界中使用它:)

【讨论】:

  • 我尝试过的最好的书
  • @ThomasAhle 您还尝试过哪些其他书籍?
【解决方案3】:

嗯,总是有An Introduction to Lambda Calculus。我已经尝试阅读它几次,但总是卡住。我有一种挥之不去的感觉,我已经知道大部分这些东西,如果它是用 Lisp/Scheme 而不是数学来呈现的,可能会更容易理解它。不过,你可能会有更好的运气:)

【讨论】:

    【解决方案4】:

    我认为关于 lambda 演算本身的参考仍然是 Barendregt's book

    除此之外,它在很大程度上取决于您对 lambda 演算的哪个“部分”感兴趣:打字?证明理论?术语重写?函数式编程?

    每一个本身就是一个领域,我不知道有什么书能涵盖这一切。

    【讨论】:

    • 正确,但它适用于非常高级的程序员,而不是初学者。
    【解决方案5】:

    尝试编写一个 lambda 演算解释器,最好使用函数式语言,使用语言的内置语法,而不是通过解析器。这是一种非常简单的方法,也是提高您对它的感觉的好方法。

    【讨论】:

      【解决方案6】:

      这是一个很好的解释(使用 Scheme):http://www.cs.brown.edu/courses/cs173/2002/Lectures/2002-10-28-lc.pdf

      这里有一点(来自我的博客),将递归阶乘减少为纯 lambda: http://blogs.msdn.com/b/ashleyf/archive/2008/12/03/the-lambda-calculus.aspx

      玩得开心!

      【讨论】:

        【解决方案7】:

        我最近从亚马逊购买了一本书,名为 "An Introduction to Functional Programming Through Lambda Calculus",作者是 Greg Michaelson。它更多的是对函数式编程的介绍,还介绍了 lambda 演算。第一印象相当不错。一本独立且易于阅读的书。 Here ,您可以在 PostScript 中下载没有索引的免费版本。

        【讨论】:

          【解决方案8】:

          真正让我开始使用和理解 lambda 演算的书是 Blackburn 和 Bos 的《自然语言的表示和推理》。这是一本关于使用 Prolog 进行自然语言处理的书。您可能会考虑的另一本书是艾伦的《自然语言理解》。最后,如果你喜欢 lambda 演算,你可能也会喜欢组合逻辑,因为组合子可以定义为 lambda 表达式。为此,我强烈推荐 Smullyan 的谜题书“To Mock A Mockingbird”。最后,他使用组合器构建了一种基本的编程语言。

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-03
          • 1970-01-01
          • 2013-04-24
          • 2010-09-20
          相关资源
          最近更新 更多