谁能告诉我学习 lambda 演算(如果有的话)的先决条件是什么?
2 回答
That really depends on what you want to do with the lambda calculus. If you want to learn it just to see how it works there really aren't any prerequisites; it's pretty self-contained. However, if you want to understand any of the proofs about it (Turing-completeness, Church numerals, normalization, etc.) you might need more math prereqs. In particular, I'd suggest a background in inductive proof techniques, especially structural induction. It also might be nice to know a little about either the halting problem or some sort of incompleteness theorem, since some of the fun results with lambda calculus involve non-computability.
理解 Lambda 演算本身没有先决条件。如果您不是计算机科学家,甚至不知道递归,您可以在大约 30 分钟内非正式地学习(无类型)Lambda 演算的基础知识:http: //palmstroem.blogspot.de/2012/05/lambda-calculus -for-absolute-dummies.html 这应该给你一个关于它做什么以及它是如何工作的直觉。
如果您熟悉基本的数学符号和递归定义,则可以进行标准介绍。特别是,如果您想了解作为 Haskell 基础的 Lambda 演算,您应该深入研究类型化的 Lambda 演算:http ://www.cse.chalmers.se/research/group/logic/TypesSS05/Extra /geuvers.pdf