Questions tagged «lambda-calculus»

2
lambda演算与编程语言之间是什么关系?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我明年要开始(大学)计算机科学专业的第一年,而我主要用C语言写作(如果有关系的话)。我曾尝试搜索,但发现的大部分内容都是关于lambda演算的知识。为什么lambda演算在编程中比单变量演算有用得多?lambda表达式与功能程序之间是否存在关系?阿隆佐·丘奇(Alonzo Church)在lambda微积分上的工作是否影响了编程语言的发展? 校外的每个人都在忙着讨论它,即使我渴望学习它,并看到它与我的编程和对编程语言的理解直接相关,我也不知道他们会谈论什么。

1
λ演算本质上是什么?
我有一个关于λ微积分的哲学问题。 当您探索λ微积分时,您会惊讶地看到在那里可以做的所有事情。您可以定义整数,算术运算,布尔值,if-then-else语句,循环,递归函数等。我相信它已经被证明在计算上是完整的。 但另一方面,如果考虑使用λ微积分中的函数,您会意识到唯一可以做的就是向它提供一个函数,然后它返回另一个函数。这个过程永无止境。 那么如何从计算中提取结果呢? 假设表达式的结果是function f。您要检查是否f符合您的期望。您可以对其进行测试,采用您知道的功能,应用于f它并接收g。但是要检查g是否正确,您现在需要验证是什么g。然后您从头开始。那么,您如何得知f? 在我看来,您可以用一个函数,身份函数替换λ演算中的所有函数I = λx.x,并且一切仍然按λ演算中所述工作。教堂数字3给定f并x返回f(f(f(x)))。但是由于f并且x只能是I,它返回I。 I应用于I并且I还返回I。因此I满足的定义3。在“布尔” (λxy.x)和(λxy.y)需要2个参数,这将是I与I这样两个布尔值将会返回I。尽管它们完全按照其定义运行,但每个都等同于标识。 那么,您如何发挥作用呢?您如何证明λ微积分处理的不仅仅是一个函数? 有身份的概念吗?您可以立即识别功能而不进行评估吗?我相信已经证明没有办法测试2个函数是否相等。 还是λ微积分不是功能,而是功能的形式描述?这将意味着λ表达式不仅定义函数的功能,而且还定义函数操作的数据。所以,当你写A B,你并不适用A于B,但你申请由字符串描述的功能A的函数的正式定义包含在B返回另一正式定义。 λ演算中实际上发生了什么?它处理的数学对象是什么? 跟进: 好的,从下面的答案看来,λ演算似乎不是关于数学意义上的函数,而是关于可以表示为λ表达式的函数子集。甚至更多关于操纵λ表达的信息。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.