`

学习scala笔记--19 常见高阶函数

 
阅读更多

 

 

 

 

map()  是个高阶函数

 

Array.map()   接收 函数作为参数   对集合的每个值  调用这个函数

 

scala> val a = Array(1,2,3,4,5,6,7,8,9)

a: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)

 

scala> a.map(x => x*x)

res12: Array[Int] = Array(1, 4, 9, 16, 25, 36, 49, 64, 81)

 

scala> 

 

scala> a.map(_ * 2)

res13: Array[Int] = Array(2, 4, 6, 8, 10, 12, 14, 16, 18)

 

 

完整的写法

scala> a.map((x:Int) => x+1)

res17: Array[Int] = Array(2, 3, 4, 5, 6, 7, 8, 9, 10)

 

 

 

 

----------------------------------

 

filter() 是个高阶函数

 

 

scala> a.filter(x => x>4)

res23: Array[Int] = Array(5, 6, 7, 8, 9)

 

scala> 

 

scala> a.filter(_ > 4)

res24: Array[Int] = Array(5, 6, 7, 8, 9)

 

scala> a.filter(_ > 4).foreach(println)

5

6

7

8

9

 

----------------------------------

 

reduce() 

 

scala> val a = Array(1,2,3,4,5,6,7,8,9,10)

a: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

 

scala> a.reduce((sum,n)=> sum+n)

res0: Int = 55

 

 

scala> a.reduce(_ + _)

res15: Int = 55

 

scala> a.reduce(_ - _)

res16: Int = -53

 

 

scala> a.reduceLeft(_ + _)

res18: Int = 55

 

scala> a.reduceRight(_ + _)

res19: Int = 55

 

 

----------------------------------

 

sortWith()

 

 

scala> val  a = Array(9,1,8,2,7,3,6,5,4)

a: Array[Int] = Array(9, 1, 8, 2, 7, 3, 6, 5, 4)

 

scala> a.sortWith(_ > _)

res13: Array[Int] = Array(9, 8, 7, 6, 5, 4, 3, 2, 1)

 

scala> a.sortWith(_ < _)

res14: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)

 

 

 

----------------------------------

分享到:
评论

相关推荐

    Scala-学习资料-mht.rar

    它的语法与Java类似,但更加强调代码的表达性和简洁性,通过模式匹配、高阶函数等特性,使代码更加可读和易于维护。 1. 类型系统:Scala的类型系统非常强大,支持静态类型检查,同时也允许隐式转换和类型推断,这...

    scala学习笔记整理

    3. **函数式编程**:Scala提供了丰富的函数式编程特性,如高阶函数、柯里化(Currying)、闭包(Closures)以及模式匹配。函数在Scala中是第一等公民,可以作为参数传递,也可以作为返回值。 4. **集合库**:Scala...

    scala讲解笔记 入门及进阶 PDF文档1-5

    第三部分:"Scala入门及进阶-part03-高级特性.pdf" 将深入探讨Scala的一些高级主题,比如高阶函数、匿名函数、偏函数和柯里化。同时,还会涉及类型系统,包括类型推断、类型别名和类型参数化。这部分内容对于提升...

    学习scala好的项目

    此外,可能会涉及到的高级主题包括Akka(一个用于构建高度并发、分布式的应用程序的框架),以及Scala的函数式编程特性,如高阶函数、柯里化、闭包和Monad。对于想要深入了解Scala的人来说,这些内容是必不可少的。 ...

    scala学习资料

    - 函数和高阶函数:学习如何定义和使用函数,以及如何使用高阶函数进行函数式编程。 - 集合:深入研究Scala的集合API,掌握其使用技巧和优化策略。 - 特性与模式匹配:学习如何使用特性来解决多重继承问题,以及如何...

    Scala详细总结(精辟版++)

    - **函数式编程**:Scala同时也是一个成熟的函数式编程语言,支持高阶函数、模式匹配等功能。 - **类型推断**:Scala具有强大的类型推断机制,这使得开发者可以在很多情况下省略类型声明。 - **模式匹配**:提供了一...

    scala-learn:scala学习笔记

    高阶函数如`map`、`filter`和`reduce`是函数式编程的重要工具,常用于集合操作。 4. **模式匹配** Scala的模式匹配功能强大,允许你根据值的不同形态执行不同的操作。这种特性在处理数据结构和解析输入时非常有用...

    Testing in Scala-带书签目录超清文字版.pdf

    1. **Scala基础**:首先,书籍可能会介绍Scala的基础语法,如类型系统、模式匹配、高阶函数和类、特质等,这些都是编写测试代码的基础。 2. **Scala测试框架**:Scala社区中有多个流行的测试框架,如ScalaTest、...

    scala学习笔记

    - **高阶函数**:Scala 支持将函数作为参数传递给其他函数或作为返回值。 ### 4. 集合操作 - **数组操作**:数组可以通过索引访问元素,支持修改操作。 - **列表操作**:列表是不可变的,提供了丰富的操作方法,如...

    SCALA从入门到精通个人笔记含代码

    目录如下 Scala简介&快速入门 基础语法 变量 数据类型 流程控制 操作符重载 模式匹配 函数式编程基础 函数式编程说明 ... 高阶函数 闭包closure 柯里化函数 控制抽象 递归高级 Akka 介绍

    scala笔记:学习scala时的笔记

    - 高阶函数可以接受或返回其他函数,如`map`, `filter`, `reduce`等。 4. **闭包**: - 闭包是具有自由变量的函数,这些自由变量可以在函数定义的外部作用域中被捕获。 - 在Scala中,匿名函数和lambda表达式支持...

    尚硅谷_韩顺平_Scala语言核心编程_PDF密码解除1

    - **函数式编程**:Scala支持高阶函数和不可变数据结构,使得代码更易于理解和测试。 - **面向对象**:Scala是面向对象的,支持类、接口和继承,但同时也引入了特质(trait),提供了一种更灵活的多重继承解决方案...

    scala-impatient-notes

    3. 集合:Scala提供了丰富的集合库,包括List、Set、Map等,它们支持高阶函数,如map、filter、fold等,使得集合操作简洁高效。 二、类型系统 1. 泛型:Scala的泛型是类型擦除的,但支持类型约束和类型推断,提供...

    scala-with-cats:scala with cats一书的笔记,习题

    此外,Scala还引入了模式匹配、高阶函数、类型推断等特性,提供了更高级的抽象工具。 Cats库是Scala中的一个关键部分,它提供了一套丰富的类型类,如Functor、Applicative、Monad等,这些类型类定义了常见的操作,...

    Scala_day01_scala_

    其次,Scala是函数式编程语言的一员,这意味着它支持高阶函数和不可变数据结构。高阶函数是可以接受其他函数作为参数或返回函数的函数,这在处理复杂逻辑时非常有用。不可变数据结构,如List、Set和Map,一旦创建就...

    scala与spark基础

    1. Scala语法基础:包括变量声明、函数定义、类和对象、模式匹配、高阶函数等。 2. Spark核心概念:理解RDD、DataFrame/Dataset,以及如何进行转换和行动操作。 3. Spark SQL:学习如何使用DataFrame API进行数据...

    Scala讲义笔记

    函数式编程可以使用高阶函数 函数是一等公民 可以更加灵活的进行程序的编写。 函数式编程并不是面向对象编程的发展,而是另外一种解决问题的思路,两者之间也并没有绝对的好坏之分,在不同的场景中各有各的优缺点。...

    Scala、Groovy++、Stackless Python、Erlang 学习笔记及分享

    学习Scala,你需要理解其静态类型的特性、模式匹配、 Actors模型以及类型系统,包括高阶函数、特质(traits)和不可变数据结构。 Groovy是另一种基于JVM的动态编程语言,它的语法简洁,易于阅读和编写。Groovy与...

    Scala-Tutorial:Scala语法学习笔记与程式码范例from 韩顺平老师教学

    5. 高阶函数:函数可以作为参数传递,也可以作为返回值。如map、filter等操作在集合上。示例: ```scala val numbers = List(1, 2, 3) numbers.map(_ * 2) // 返回一个新的List,每个元素乘以2 ``` 6. 匿名函数:...

    udemy-scala-course

    学习这个课程,学员不仅可以了解Scala的基本语法和面向对象编程,还能接触到函数式编程的概念,如高阶函数、模式匹配和不可变数据结构。此外,由于Scala在大数据处理框架如Spark中的广泛应用,学员还将了解到如何...

Global site tag (gtag.js) - Google Analytics