`

函数式编程(4)

 
阅读更多

                                          高阶函数

 1.高阶函数:以一个函数作为参数;以一个函数作为返回结果。

 2.以函数为参数的有_.map,_.reduce和_.filter等一些函数,具体的操作请参照Underscore.

(1)对于_.max这个函数是用运算符(>)来比较的,然而他不能实现真正的比较,这时就需要创建一个新函数了。

例:

function finder(valueFun, bestFun, coll){
   return _.reduce(coll, function(best,current){
           var bestValue = valueFun(best);
           var currentValue = valueFun(current);
           return (bestValue === bestFun(bestValue, currentValue)) ? best : current;
   })
}
finder(_.identity, Math.max, [1,2,3,4,5]);
//>>5;

 这就是一个高阶函数的实现。通过valueFun用来生成比较值,bestFun函数实现各种比较,coll传入值。

(2)使用的是函数,而不是值。

例:

function repeatedly(times, fun){
   return _.map(_.range(times),fun);
}
//用于将一个函数重复执行多次;
repeatedly(3,function(){
    return Math.floor((Math.random()*10)+1);
})
//>>[1,3,8](这里产生的是随机数,结果不唯一)

 times代表执行的次数,fun执行的函数。

分享到:
评论

相关推荐

    函数式编程思维.pdf_函数式编程_函数式编程思维_

    函数式编程是一种编程范式,它强调将计算视为数学函数的评估,并避免可变状态和副作用。这种编程风格鼓励使用纯函数,即那些输入相同输出始终一致且不改变外部状态的函数。函数式编程有着深厚的理论基础,源于λ演算...

    javascript函数式编程

    通过阅读《JavaScript函数式编程指南》,读者可以了解到函数式编程的基本概念和实现技巧,并且会发现JavaScript作为函数式编程语言的适用性。 函数式编程指南通常会涵盖以下几个重要知识点: 一等公民的函数:在...

    Java-Java函数式编程教程

    Java函数式编程是一种编程范式,它强调使用函数作为程序的基本构建块,将计算视为函数的组合,并且尽可能避免改变状态和可变数据。在Java 8及更高版本中,函数式编程得到了官方的大力支持,引入了Lambda表达式、...

    用C++进行函数式编程

    ### 用C++进行函数式编程 #### 引言 函数式编程作为一种编程范式,在软件工程领域中引起了广泛的关注。这种编程方式强调程序运算结果的确定性和不变性,能够帮助开发者更好地理解和管理代码的状态变化,尤其是在...

    javaScript函数式编程

    1.2 开始函数式编程4 1.2.1 为什么函数式编程很重要4 1.2.2 以函数为抽象单元7 1.2.3 封装和隐藏9 1.2.4 以函数为行为单位10 1.2.5 数据抽象14 1.2.6 函数式JavaScript初试17 1.2.7 加速19 1.3 Underscore示例22 1.4...

    函数式编程中文版.pdf

    函数式编程是一种以数学函数为基本计算单元的编程范式。在函数式编程中,函数是第一类公民,意味着函数可以被当做参数传递给其他函数、作为其他函数的返回值以及赋值给变量。这种编程范式强调的是无副作用、不变性和...

    JavaScript函数式编程.pdf

    不过,由于【标题】中提供了文档的名称——"JavaScript函数式编程.pdf",我可以根据这个名称扩展出关于JavaScript函数式编程的知识点。 JavaScript函数式编程的知识点非常丰富,涉及很多方面的内容,下面将详细介绍...

    Scala函数式编程

    函数式编程(FP)是一种软件开发风格,它注重不依赖于编程状态的函数。函数式代码易于测试和复用,容易实现并发,且不容易受到bug的攻击。Scala是一种能很好支持函数式编程的新兴JVM语言。《Scala函数式编程》是针对...

    java8函数式编程(csdn)————程序.pdf

    Java 8 函数式编程 Java 8 函数式编程是指在 Java 8 中引入的一种新的编程范式,它强加了额外的约束,即所有数据必须是不可变的,设置一次,永不改变。函数式编程将值传递给函数,该函数然后生成新值但从不修改...

    JS 函数式编程指南 PDF

    在本篇知识分享中,我们将聚焦于函数式编程这一范式,并以JavaScript语言作为教学和实践的媒介。首先,我们需要理解函数式编程的概念及其重要性。函数式编程是一种编程范式,它强调使用函数来表达计算逻辑,其中函数...

    Python函数式编程(第2版)1

    《Python函数式编程(第2版)》是一本面向Python开发者深入探讨函数式编程的书籍。函数式编程是一种编程范式,它强调使用函数作为基本的构建块,以减少副作用和状态变化,从而提高代码的可读性和可维护性。Python虽...

    函数式编程中的Swift与Swift中的函数式编程

    在介绍“函数式编程中的Swift与Swift中的函数式编程”这一主题时,傅若愚首先提出了一个问题:“当我们谈论函数式编程时,我们在谈论些什么?”函数式编程是一种编程范式,它将计算视为数学函数的评估,并避免改变...

    Java 8函数式编程.pdf

    Java 8函数式编程

    Scala函数式编程.pdf

    函数式编程(FP)是一种软件开发风格,它注重不依赖于编程状态的函数。函数式代码易于测试和复用,容易实现并发,且不容易受到bug的攻击。Scala是一种能很好支持函数式编程的新兴JVM语言。《Scala函数式编程》是针对...

    javascript指南和函数式编程

    本指南将深入探讨JavaScript的高效编程和函数式编程这两个重要主题,帮助开发者提升技能,实现更优雅、更可维护的代码。 《Effective JavaScript(中文版).pdf》这本书是JavaScript编程的经典之作,它包含了68个具体...

    函数式编程另类指南

    的确,关于函数式编程的文章和论文难于理解,但他们本来不必这么晦涩。这一知识隔阂的形成完全是历史原因。函数式编程的概念本身并不困难。这篇文章可以作为“简易的函数式编程导引”。是一座从我们命令式...

    Java8 Lambdas 函数式编程百度网盘

    Java8 函数式编程百度网盘共享,Java8 函数式编程百度网盘,Java8 百度网盘,Java8 函数式编程 PDF 开源资源, Java8 Lambdas 表达式百度网盘,Java8 Lambdas 百度网盘, 象征性的给一分意思意思

Global site tag (gtag.js) - Google Analytics