1函数式编程简介函数式编程是区别于传统命令式编程的一种编程思想。也就是说,函数可以不依赖于任何其他对象而独立存在,而在面向对象语言中,函数(方法)是依附于对象的,是对象的一部分。这就决定了函数式语言中函数的一些特殊属性,比如传出/传入参数、作为普通变量等。[1]函数式编程思想的源头可以追溯到1930年代,数学家AronZuo。一项研究问题的可计算性,后来被称为lambda演算。lambda演算的本质是一切都是函数。一个函数可以作为另一个函数的输出或/和输入。一系列函数最终会形成一个表达式chain,而这个表达式链最终可以得到一个值。在这个过程中,这就是计算的本质。但是,这个想法基于当时的硬件很难实现,历史最终选择了另一种与Church的lambda平行的数学理论理论:图灵机作为一种计算理论,和另一位科学家冯诺依曼的计算机结构,最后实现为硬件。由于第一台计算机是冯诺依曼的程序存储结构,运行在这个平台上的程序也继承了这个基因,编程语言比如C/Pascal在一定程度上依赖于这个系统。1950年代,麻省理工学院教授约翰·麦卡锡在冯诺依曼机器上成功实现了lambda理论,命名为LISP(LIStProcessor),从此函数式编程语言开始活跃在计算机科学中。场地。2JavaScript中的函数式编程思想2.1)匿名函数在函数式编程语言中,函数可以没有名字,匿名函数通常表示:“一段可以完成某事的代码”。这个表达式在很多场合都很有用,因为我们有时候需要用一个函数来完成一些事情,但是这个函数可能只是临时的,所以没有理由为它生成一个顶层函数对象。//自定义map()函数map(array,func){varres=[];for(vari=0,len=array.length;i
