我只是想知道在哪里可以找到一些与语言无关的教程,了解lambda函数是什么,它们的用法是什么,以及不支持它们的语言中的大致等价物。
我特别喜欢任何关于通用符号的信息。
谢谢!如果我能详细说明这一点,请让我知道。
编辑:哦,嘿,我忘了一件事。
就术语而言,lambda表达式或函数、匿名/委托函数和闭包之间有什么区别?
发布于 2010-01-01 12:10:51
仅就术语而言,lambda表达式或函数、匿名/委托函数和闭包之间有什么区别?
关于术语:
McCarthy将lambda表达式作为(lambda (arguments ...) body)用于LISP,拼写为"lambda“。萨斯曼和斯蒂尔后来使语义更忠实于丘奇的原始。这个表达式也被Haskell采用为\ arguments ... -> body,反斜杠看起来像一个lambda,但Haskell委员会使用右箭头而不是点,因为他们想要点作为函数组合。这个表达式被Robin Milner用来表示ML,但拼写更加奇怪:fn args => body。所有这些表达式都被恰当地称为lambda表达式,并且都表示匿名函数。只有在Haskell中,函数才是纯的;Lisp、ML和Scheme都允许body产生副作用。闭包是当你计算一个
恐怕我不能帮助您实现“委托函数”;在我的世界里,这个术语是用来描述完全不同的东西的。
发布于 2010-01-01 12:03:36
要求语言不可知的治疗是一个非常严格的限制。我可以推荐几个关于lambda演算的教程:
如果你想了解lambda和高阶函数在编程中的用法,我认为你最好放弃不可知论。关于ML/Hope/Miranda/Haskell语言家族的一篇好文章是
约翰·休斯的
发布于 2010-01-01 09:45:55
你可能不想被提到阿隆佐·丘奇的lambda微积分。
到目前为止,lambda函数最常用的符号是LISP。
Abelson & Sussman的“计算机程序的结构和解释”可能是涵盖该主题以及应用程序的最容易理解的文本。
如果你想看看它是从哪里开始的,那就去看看麦卡锡的"Recursive Functions of Symbolic Expressions and Their Computation By Machine, Part I"吧。
https://stackoverflow.com/questions/1987672
复制相似问题