Language agnostic Lambda函数的理论基础

Language agnostic Lambda函数的理论基础,language-agnostic,lambda,Language Agnostic,Lambda,我只是想知道在哪里可以找到一些语言不可知的教程,关于lambda函数是什么,它们的用途是什么,以及不支持它们的语言中的粗略等价物 我特别希望得到关于常用符号的任何信息 谢谢!请让我知道我是否可以详细说明这一点 编辑:哦,嘿,我忘了什么 就术语而言,lambda表达式或函数、匿名/委托函数和闭包之间有什么区别?您可能不想被提及到阿隆佐·丘奇的lambda演算 到目前为止,lambda函数最常用的表示法是LISP Abelson&Sussman的《计算机程序的结构和解释》可能是涵盖该主题以及应用程序

我只是想知道在哪里可以找到一些语言不可知的教程,关于lambda函数是什么,它们的用途是什么,以及不支持它们的语言中的粗略等价物

我特别希望得到关于常用符号的任何信息

谢谢!请让我知道我是否可以详细说明这一点

编辑:哦,嘿,我忘了什么


就术语而言,lambda表达式或函数、匿名/委托函数和闭包之间有什么区别?

您可能不想被提及到阿隆佐·丘奇的lambda演算

到目前为止,lambda函数最常用的表示法是LISP

Abelson&Sussman的《计算机程序的结构和解释》可能是涵盖该主题以及应用程序的最容易理解的文本

如果你想知道它是从哪里开始的,那就去挖掘麦卡锡的吧。

学习一种Lisp方言(Scheme目前非常流行)。事实上,我完全同意约翰的建议,阅读“计算机程序的结构和解释”,并在此过程中学习Lisp

Lisp最初不是作为一种编程语言,而是一种描述计算的数学符号。它被设计成比图灵机器更好的教学工具(如果你曾经在图灵机器上工作过,你就会知道它们有多烂)。Lisp代码可以编译和执行的事实是一个意外。Lisp与lambda演算(数学的一个不同分支)非常接近这一事实也是一个意外(它是在语言设计之后很久才被证明的)


Lisp的大部分功能并不是真正“设计”到语言中的,与其他语言复制Lisp的方式不同。它们产生于Lisp所依据的几个简单规则中——就像数学中的定理产生于数字所依据的规则一样。

你看过这些规则了吗?数学理论的难度更大,但一旦遇到实际问题,最终会涉及到更多的实际问题。

要求语言不可知论治疗是一个非常严格的限制。我可以推荐一些关于lambda演算的教程:

  • A专注于快速使用lambda演算编程

  • A进入了更深入的技术层面,并通过展示如何使用定点组合器模拟递归来结束

如果您想了解lambda和高阶函数在编程中的使用,我认为您最好放弃不可知论。ML/Hope/Miranda/Haskell语系的一篇优秀论文是

  • 约翰·休斯。Hughes将向您展示一些高阶函数的有趣用例,并且通常会很好地帮助您理解为什么人们首先对这些lambda东西感兴趣
就术语而言,lambda表达式或函数、匿名/委托函数和闭包之间有什么区别

关于术语:

  • lambda表达式是Alonzo Church为lambda演算发明的编写匿名函数的原始方法。在lambda演算中,所有函数都是纯函数:没有任何副作用

    McCarthy将LISP的lambda表达式采用为
    (lambda(arguments…)body)
    ,拼写为“lambda”。苏斯曼和斯蒂尔后来使语义学更加忠实于丘奇的原作。Haskell还将该表达式作为
    \arguments…->正文
    ,反斜杠的意思是看起来像一个lambda,但是Haskell委员会使用了右箭头而不是点,因为他们想要点作为函数的组成部分。罗宾·米尔纳(Robin Milner)为ML采用了这个表达式,但拼写更为奇怪:
    fn args=>body
    。所有这些表达式都正确地称为lambda表达式,并且都表示匿名函数。只有在Haskell中函数才是纯函数;Lisp、ML和Scheme都允许
    body
    产生副作用

  • 闭包是在计算lambda表达式或其他类型的嵌套函数时得到的。闭包不仅包含lambda表达式的编译代码,还包含有关自由变量的信息。(在Lisp和Scheme中,闭包存储自由变量的位置;在Haskell和ML中,闭包存储自由变量的值。)

  • 匿名函数是一个更一般的概念,不需要局限于简单的绑定和主体。例如,在Smalltalk中,“块”表示匿名函数,但块体是语句序列,因此它肯定与lambda表达式不同


恐怕我不能帮你处理“委托函数”;在我的世界里,这个术语完全是用来描述其他东西的。

如果不涉及相关的问题,你就不会深入到Lambda演算,所以你不妨深入研究一下,把它做完。令人愉快和奇怪的是,如果不是最好的开始,可能是最奇怪的。你的大脑会感觉像是被外星人重新连接了。真的

某个疯子为滑雪计算实现了一种语言。下面是一个打印斐波那契数的程序:

```s``s``sii`ki
  `k.*``s``s`ks
 ``s`k`s`ks``s``s`ks``s`k`s`kr``s`k`sikk
  `k``s`ksk
嘿,别怪我。这不是我发明的


当一个循环中的Perl正则表达式被证明是图灵完备的时,事情变得更加奇怪。

你想深入数学研究多少?答案应该是多少?数学?困惑的脸!尽管我承认我对它们的实际CS应用程序更感兴趣,但请随意提及它们。“实用”和“CS”在同一句话中!英雄联盟啊,对不起,我误解了你。我想当你说“CS”时,你的意思是,比纯数学更实用。我总是忘记很多人认为CS只是理论的一面。我对t更感兴趣