Language agnostic 学习Lambdas/Closures的最佳语言独立源是什么?

Language agnostic 学习Lambdas/Closures的最佳语言独立源是什么?,language-agnostic,lambda,closures,Language Agnostic,Lambda,Closures,大多数编程语言都使用lambdas/closures。 哪种语言不可知源被推荐为学习Lambda基础知识的最佳来源 不同语言的lambda/闭包: 语言是不可知的。答案取决于你所说的“基础”是什么意思。一旦你选择了任何一种语言,你就失去了不可知论的要求 Javascript有闭包。我也会把它添加到列表中。Java还没有 我想它最终会回到你打算使用它们的地方。回到Lisp或Scheme,因为它们是源代码,如果你想成为老派的话。如果你最终会在主流商业语言中使用Javascri

大多数编程语言都使用lambdas/closures。 哪种语言不可知源被推荐为学习Lambda基础知识的最佳来源

不同语言的lambda/闭包:

    • 语言是不可知的。答案取决于你所说的“基础”是什么意思。一旦你选择了任何一种语言,你就失去了不可知论的要求

      Javascript有闭包。我也会把它添加到列表中。Java还没有


      我想它最终会回到你打算使用它们的地方。回到Lisp或Scheme,因为它们是源代码,如果你想成为老派的话。如果你最终会在主流商业语言中使用Javascript、C#或Python,请选择它们。

      如果你只是想要一些易于消化的东西,请阅读。当然,它不是语言不可知论,但Scheme的实现非常接近


      为了更深入的理解,请阅读-本杰明·皮尔斯。对lambda演算进行深入研究的编程语言理论。完全不懂语言。

      首先,我不会把它们作为“独立于语言”的东西来学习。我建议从实际出发学习它们,首先在Javascript中使用它们,然后扩展到另一种语言(如lisp、C#)。然后,如果你觉得有必要更进一步,学习一般的理论知识。

      我认为lambda在Lisp中是最简单的,因为它是为这种事情而设计的,在方言中,Scheme往往是最简单的


      并非巧合,使用的方案!这是。

      对于一个想学习理论基础的初学者来说,丹本对皮尔斯的书的建议是无与伦比的

      但是从您给出的列表来看,您想要的似乎是如何使用一流的函数值进行有效编程,这就是
      lambda
      的计算结果。你不会在一个语言不可知的软件包中获得这种经验、信息或直觉。更糟糕的是,在实际语言中,许多匿名函数是通过部分应用Curried函数而不是通过显式
      lambda
      创建的;大多数使用一流函数的人都觉得lambda非常烦人且难以阅读

      在此背景下,以下是两条建议:

      • 如果你一心想学习
        lambda
        ,那就用Scheme做点什么吧。Schemer喜欢一级函数,Scheme的表示法迫使程序员比许多其他函数式语言更明确地使用lambda

      • 作为一个初学者,您最好先了解人们为什么要使用这些一流的函数。在这种情况下,由约翰·休斯阅读。休斯的论文使用了某种语言不可知的符号;它不是当前任何流行语言的符号,但它与Caml、F#、Haskell和ML有些相似


      @dyffymo:adde链接到javascript闭包,链接正常吗+1Java可能没有lambda函数,但它有闭包。匿名实现接口时,定义的方法可以访问外部变量,只需确保将它们标记为final即可。匿名内部函数与内置闭包不同。您不能传递内部函数,而使其外部上下文仍然可用。@danben:谢谢您提供的链接+1要更深入地了解Javascript中的闭包,请阅读: