sus*_*ani 86 javascript lambda
我正在阅读"JavaScript:The Good Parts",作者提到JavaScript是第一个推出的lambda语言.
JavaScript的函数是具有(主要)词法范围的第一类对象.JavaScript是第一个成为主流的lambda语言.在内心深处,JavaScript与Lisp和Scheme有更多共同点,而不是Java.这是C的服装中的Lisp.这使得JavaScript成为非常强大的语言.
我没有得到什么是lambda语言.这种语言有哪些属性,它与Java,C,C++和Php等语言有什么不同?
Jua*_*des 47
简单来说,lambda语言是一种允许将函数传递给另一个函数的语言,其中函数被视为任何其他变量.此外,您应该能够定义此函数以匿名(或内联)方式传递.PHP 5.3增加了对lambda函数的支持.JavaScript是第一个主流语言吗?Lisp在JavaScript之前已广泛用于教育环境,也用于定制我们心爱的Emacs http://www.gnu.org/software/emacs/manual/html_node/eintr/
这是一个例子
function applyOperation(a, b, operation) {
return operation(a,b);
}
function add(a,b) { return a+ b; }
function subtract(a,b) {return a - b;}
// Can be called like
applyOperation(1,2, add);
applyOperation(4,5, subtract);
// Anonymous inline function
applyOperation(4,7, function(a,b) {return a * b})
Run Code Online (Sandbox Code Playgroud)
它与C有什么不同?在C中,您可以将指针传递给函数,但不能匿名内联.
在Java(版本8之前)中,要实现相同的效果,必须传递实现接口的对象,实际上可以匿名定义内联.
Der*_*urk 36
我从来没有听过任何人使用"lambda语言"这个词,我能想到的唯一合理的定义会将JavaScript排除在"第一个"之外.
那就是说,我怀疑他可能意味着:
function
JavaScript中的语法;这是用lambda
多种语言编写的,因此可能是"lambda语言".这两种用法都源于使用希腊字母lambda来表示lambda演算中的函数抽象,这是由Alonzo Church设计的计算模型以及函数式编程所依据的.
编辑:看了谷歌图书的结果---"首先走向主流"; 好吧,那是有争议的.我提出LISP至少在某种程度上是合理的主流.这是一个公平的观点,JavaScript的语义直接受到Scheme的启发,它肯定比其他可以提出类似声明的语言的受众更多.
归档时间: |
|
查看次数: |
25530 次 |
最近记录: |