`
cakin24
  • 浏览: 1388797 次
  • 性别: 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编程综合进阶向导有33章。本书介绍了一种新的编程语言,它把面向对象和函数式编程概念有机地结合为整体,从而形成一种完整统一、语义丰富的新思维体系。

    scala习题精选100道附带解析

    - **知识点概述**:在Scala中使用特定函数前通常需要先导入相应的包。 - **详细解析**: - **import scala.math._**:导入scala.math包下的所有内容。 - **import math._**:同样可以导入scala.math包下的所有...

    scala-sandbox:可重用或样本scala函数的集合

    描述中提到的"可重用或样本scala函数的集合"表明这个项目提供了多种Scala函数,这些函数可能是通用的,适用于多种场景,或者是作为示例,帮助学习者理解Scala语言的语法和特性。"执行"部分指导用户如何运行这个项目...

    头歌Scala中集合的使用

    Scala中集合的使用 大学生 1. List 列表的使用 2. Set 集合的使用 3.Map 映射的使用 4. 元组的使用

    快学scala习题及答案详解

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。这个压缩包文件"快学scala习题及答案详解"显然是为学习Scala的人设计的,提供了逐步学习和自我测试的资源。通过章节习题和答案,学习者可以...

    scala中文版

    Scala的设计者将这些面向对象和函数式的特性综合在一起,旨在让开发者能够以声明式的方式编写简洁的代码,并充分利用多核处理器的能力。 Scala语言的一个重要特性是它的伸缩性,这表现在两个方面:一是Scala可以...

    图灵书籍(Scala程序设计(第2版).pdf+Scala程序设计-JAVA虚拟机多核编程实战.pdf)

    Scala程序设计(第2版)很可能详尽地介绍了Scala的基本语法、类与对象、模式匹配、高阶函数、类型系统、并发编程等核心概念,以及可能包含了一些新的语言特性或最佳实践。 **JAVA虚拟机多核编程实战** 这本书则关注...

    Scala实用指南(高清带书签)

    Scala实用指南介绍了Scala编程语言及其面向对象编程和函数式编程结合的特性。Scala是一种运行在JVM上的高级编程语言,它允许开发者将面向对象编程和函数式编程的范式结合在一起,以创建简洁、表达性强、可扩展的应用...

    scala for data science

    1. **Scala基础知识**:介绍Scala语言的基础知识,包括语法、类型系统、函数式编程特性等。 2. **数据处理与分析**:讲解如何使用Scala高效地处理大量数据集,包括数据清洗、转换和分析方法。 3. **机器学习算法**:...

    scala从入门到精通技术教学视频

    24.函数式编程之简化函数定义 25.函数式编程之映射 26.函数式编程之扁平化映射 27.函数式编程之过滤 28.函数式编程之默认排序 29.函数式编程之指定字段排序 30.函数式编程之自定义排序 31.函数式编程之分组 ...

    SCALA详细总结SCALA详细总结

    Scala是一种多范式编程语言,它融合了面向对象和函数式编程的概念,旨在提供一种高效、灵活且富有表达力的编程环境。Scala这个名字是“Scalable Language”的缩写,表明其设计目标是随着程序规模的增长而保持可管理...

    计算机专业基础理论电子书合集08----编程语言:scala

    Scala是一种多范式编程语言,由Martin Odersky在2003年设计,它结合了面向对象和函数式编程的特性,旨在提高代码的简洁性和可读性。本合集包含了一系列关于Scala编程的经典书籍,是学习和深入理解Scala语言的宝贵...

    Programming in Scala, 2nd Edition

    《Programming in Scala, 2nd Edition》是一本专注于Scala编程语言的综合指南书籍,该书的第二版针对Scala 2.8版本进行了更新。本书是由Artima出版社出版,主要作者包括Martin Odersky、Lex Spoon以及Bill Venners,...

    Chisel-Scala.rar

    Scala是一种多范式的编程语言,融合了函数式和面向对象编程的特点。它的语法简洁且强大,支持高阶函数、类型推导和模式匹配等高级特性。在学习Scala时,你需要理解其类和对象的概念,以及如何定义和使用函数。此外,...

    spark从入门到实战

    Scala允许在不同作用域内定义函数,并支持默认参数值和命名参数调用方式,使得函数调用更加灵活多变。 **默认参数函数**: ```scala def greet(name: String, greeting: String = "Hello"): Unit = { println(s"$...

    spark2.1-scala api

    2. **Scala API**:Spark 的 Scala API 提供了丰富的操作符和函数,使得数据处理更加直观。DataFrame 和 Dataset API 使得 Spark 更加适合大规模数据处理,支持类型安全和编译时检查。 3. **Maven 构建系统**:...

    毕业设计:基于scala的小型超市管理系统的设计与实现.zip

    【标题】中的“基于Scala的小型超市管理系统的设计与实现”是一个综合性的项目,涉及到软件工程、数据库管理和编程语言等多个IT领域的知识。Scala是一种强大的多范式编程语言,它结合了面向对象和函数式编程的特点,...

    Scallina:Scala程序的基于Coq的综合,按构造正确

    Scallina是一个项目,专注于将Scala程序的综合与形式化验证相结合,特别是在Coq证明助手的框架下实现构造性正确性。这个项目的核心目标是为Scala程序员提供工具,以确保他们的代码不仅按照预期运行,而且在编译时就...

    大数据实训,使用文件,包含Hadoop和Scala的

    Scala是一种多范式编程语言,融合了面向对象和函数式编程的特点。在大数据处理中,Scala与Hadoop结合得尤为紧密,因为它是Apache Spark的主要编程语言。Spark 2.4.4是高性能的开源数据处理引擎,它提供了比Hadoop ...

Global site tag (gtag.js) - Google Analytics