`
cakin24
  • 浏览: 1333344 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Scala函数综合

阅读更多
一 需求


 
 

二 代码

object sumfunc {
  def sum(f:Int => Int)(a:Int)(b:Int):Int ={
  	@annotation.tailrec
  	def loop(n:Int,acc:Int):Int={
  		if(n>b){
  			println(s"n=${n},acc=${acc}")
  			acc
  		}else{
  			println(s"n=${n},acc=${acc}")
  			loop(n+1,acc+f(n))
  		}
  	}
  	loop(a,0)
  }                                               //> sum: (f: Int => Int)(a: Int)(b: Int)Int
  sum(x =>x)(1)(5)                                //> n=1,acc=0
                                                  //| n=2,acc=1
                                                  //| n=3,acc=3
                                                  //| n=4,acc=6
                                                  //| n=5,acc=10
                                                  //| n=6,acc=15
                                                  //| res0: Int = 15
  
  sum(x =>x*x)(1)(5)                              //> n=1,acc=0
                                                  //| n=2,acc=1
                                                  //| n=3,acc=5
                                                  //| n=4,acc=14
                                                  //| n=5,acc=30
                                                  //| n=6,acc=55
                                                  //| res1: Int = 55
  sum(x =>x*x*x)(1)(5)                            //> n=1,acc=0
                                                  //| n=2,acc=1
                                                  //| n=3,acc=9
                                                  //| n=4,acc=36
                                                  //| n=5,acc=100
                                                  //| n=6,acc=225
                                                  //| res2: Int = 225
  
  val sum1=sum(x =>x*x)_                          //> sum1  : Int => (Int => Int) = sumfunc$$$Lambda$13/757108857@6bdf28bb
  sum1(1)(5)                                      //> n=1,acc=0
                                                  //| n=2,acc=1
                                                  //| n=3,acc=5
                                                  //| n=4,acc=14
                                                  //| n=5,acc=30
                                                  //| n=6,acc=55
                                                  //| res3: Int = 55
}

 

  • 大小: 47 KB
分享到:
评论

相关推荐

    Scala函数式编程

    《Scala函数式编程》是针对希望学习FP并将它应用于日常编码中的程序员而写的,内容包括:函数式编程的概念;函数式编程相关的各种“为什么”和“怎么做”;如何编写多核程序;练习和检测。 从OOP到FP,思路的转化 ...

    Scala函数式编程.pdf

    函数式编程(FP)是一种...《Scala函数式编程》是针对希望学习FP并将它应用于日常编码中的程序员而写的,内容包括:函数式编程的概念;函数式编程相关的各种“为什么”和“怎么做”;如何编写多核程序;练习和检测。

    function programming in scala 英文原版 scala函数式编程

    英文原版 scala函数式编程 function programming in scala

    38_Scala函数式编程

    目前很多大数据组件都是用scala开发,包括Spark, Kafka, Flink,scala的函数式编程思想能够带来比java更高的效率,同时其可读性及难度升高,文档由浅入深介绍Scala的语法、特性等;

    Scala函数式编

    Scala函数式编

    wooyang2018#Scala-Learn#Scala 函数嵌套1

    Scala 函数嵌套我们可以在 Scala 函数内定义函数,定义在函数内的函数称之为局部函数。

    Scala函数和闭包.md

    Scala函数和闭包

    Scala函数式编程 2016年4月 电子工业出版

    Scala函数式编程 2016年4月版 中文 Scala函数式编程 2016年4月版 中文

    scala函数式编程-scalaz

    scala函数式编程-scalaz reader-monad state-monad functor applicative functor

    25 scala函数式编程.7z

    25 scala函数式编程.7z

    Scala编程实战

    非常适合喜爱Scala编程的小伙伴学习,高清版,带完整版书签。

    高阶函数 in Scala

    详细讲解Scala中的高阶函数部分,具体实例剖析Scala中高阶函数的意义所在,对控制抽象进行了详细的说明,参考书籍《快学Scala》、《Programming in Scala》

    scala的函数

    本文详细的介绍了scala的函数,对于入门者来说是一个很好的启蒙教材

    Scala 编程 综合进阶向导

    Scala编程综合进阶向导有33章。本书介绍了一种新的编程语言,它把面向对象和函数式编程概念有机地结合为整体,从而形成一种完整统一、语义丰富的新思维体系。

    Scala函数式编程专题--scala集合和函数

    主要介绍了scala集合和函数的的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    Scala—— 3.函数

    函数式编程是从编程方式(范式)的角度来谈的,可以这样理解:函数式编程把函数当作一等公民,充分利用函数、只是函数的多种使用方式,在Scala中,函数是一等公民,像变量一样,既可以作为函数的参数使用,也可以将...

    快学Scala课后习题答案

    快学Scala课后习题答案,包含各个章节答案word版和pdf版

    函数式反应编程Scala.Rx.zip

    Scala.Rx 是一个 Scala 的函数式反应编程的库,基于 FRP 和 Deprecating the Observer Pattern 理论的实现. 简单例子: import rx._ val a = Var(1); val b = Var(2) val c = Rx{ a() b() } println(c()) // 3 a...

Global site tag (gtag.js) - Google Analytics