光环大数据培训 JavaScript 函数式编程介绍

编辑:光环大数据 来源: 互联网 时间: 2017-12-18 18:20 阅读:

  光环大数据(大数据培训的专业机构), 以往经常看到”函数式编程“这一名词,却始终没有花时间去学习,暑期实习结束之后一直忙于边养老边减肥,81天成功瘦身30斤+,开始回归正常的学习生活。

便在看《JavaScript函数式编程》这本书,以系统了解函数式编程的知识。本文试图尽可能系统的描述JavaScript函数式编程。当然认识暂时停留于本书介绍的程度,如有错误之处,还请指正。

注:本书采用的函数式库Underscore。一下部分代码运行时,需引入Underscore。

函数式编程简介

我们用一句话来直白的描述函数式编程:

函数式编程通过使用函数来将值转换成抽象单元,接着用于构建软件系统。

概括的来说,函数式编程包括以下技术

-确定抽象,并为其构建函数

-利用已有的函数来构建更为复杂的抽象

-通过将现有的函数传给其他函数来构建更加复杂的抽象

注:JavaScript并不仅限于函数式编程语言,以下是另外3种常用的编程方式。

-命令式编程:通过详细描述行为的编程方式

-基于原型的面向对象编程:基于原型对象及其实例的编程方式

-元编程:对JavaScript执行模型数据进行编写和操作的编程方式

函数式编程的一些特性

纯函数

纯函数坚持以下属性(坚持纯度的标准不仅将有助于使程序更容易测试,也更容易推理。)

-其结果只能从它的参数的值来计算

-不能依赖于能被外部操作改变的数据

-不能改变外部状态

不变性——没有副作用

所谓”副作用”(sideeffect),指的是函数内部与外部互动(最典型的情况,就是修改全局变量的值),产生运算以外的其他结果。

函数式编程强调没有”副作用”,意味着函数要保持独立,所有功能就是返回一个新的值,没有其他行为,尤其是不得修改外部变量的值。

不修改状态

上一点已经提到,函数式编程只是返回新的值,不修改系统变量。因此,不修改变量,也是它的一个重要特点。在其他类型的语言中,变量往往用来保存”状态”(state)。不修改变量,意味着状态不能保存在变量中。

函数式编程使用参数保存状态,最好的例子就是递归。下面的代码是一个将字符串逆序排列的函数,它演示了不同的参数如何决定了运算所处的”状态”。

functionreverse(string){

if(string.length==0){

returnstring;

}else{

returnreverse(string.substring(1,string.length))+string.substring(0,1);

}

}


函数是一等公民

“一等”这个术语通常用来描述值。当函数被看作“一等公民”时,那它就可以去任何值可以去的地方,很少有限制。比如数字在Javascript里就是一等公民,同程

作为一等公民的函数就会拥有类似数字的性质。

varfortytwo=function(){return42}//函数与数字一样可以存储为变量

varfortytwo=[32,function(){return42}]//函数与数字一样可以存储为数组的一个元素

varfortytwo={number:32,fun:function(){return42}}//函数与数字一样可以作为对象的成员变量

32+(function(){return42})()//函数与数字一样可以在使用时直接创建出来

//函数与数字一样可以被传递给另一个函数

functionweirdAdd(n,f){returnn+f()}

weirdAdd(32,function(){return42})

//函数与数字一样可以被另一个函数返回

return32;

returnfunction(){return42}

Applicative编程

Applicative编程是特殊函数式编程的一种形式。Applicative编程的三个典型例子是map,reduce,filter

函数A作为参数提供给函数B。(即定义一个函数,让它接收一个函数,然后调用它)

_.find(["a","b",3,"d"],_.isNumber)//_.find与_.isNumber都是Underscore中的方法

//自行实现一个Applicative函数

functionexam(fun,coll){

returnfun(coll);

}

//调用

exam(function(e){

returne.join(",")

},[1,2,3])

//结果”1,2,3“

 

    大数据+时代,大数据培训机构,就选光环大数据!

   原创文章,转载请注明出处:光环大数据官网。


大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服

你可能也喜欢这些

在线客服咨询

领取资料

X
立即免费领取

请准确填写您的信息

点击领取
#第三方统计代码(模版变量) '); })();
'); })();