scala------高阶函数
2016-02-22 08:53
176 查看
1. 匿名函数
Array(1, 2, 3).map((x: Int) => 3*x) 中 (x: Int) => 3*x
为匿名函数
2. 以函数作为参数的函数
class Test1 {
def t1(f1: (Int) => Int, f2: (Int) => Int, x: Int, y:Int) = {
f1(x) + f2(y)
}
}
object Test {
def main(args: Array[String]): Unit = {
val t = new Test1()
val f1 = (x: Int) => x
val f2 = (y: Int) => y
println(t.t1(f1, f2, 1, 2))
}
}
3. 闭包:
代码和代码用到的任何非局部变量构成
4. 柯里化:
原本接受两个参数的的函数编程接受一个参数的函数
def t1 (x : Int) = (y: Int) => x*y
Array(1, 2, 3).map((x: Int) => 3*x) 中 (x: Int) => 3*x
为匿名函数
2. 以函数作为参数的函数
class Test1 {
def t1(f1: (Int) => Int, f2: (Int) => Int, x: Int, y:Int) = {
f1(x) + f2(y)
}
}
object Test {
def main(args: Array[String]): Unit = {
val t = new Test1()
val f1 = (x: Int) => x
val f2 = (y: Int) => y
println(t.t1(f1, f2, 1, 2))
}
}
3. 闭包:
代码和代码用到的任何非局部变量构成
4. 柯里化:
原本接受两个参数的的函数编程接受一个参数的函数
def t1 (x : Int) = (y: Int) => x*y
相关文章推荐
- JS实现上下左右对称的九九乘法表
- 详解Java面向对象编程中方法的使用
- Android消息推送
- spring(三)----大概是最简单的面向切面了
- OC多文件开发
- 强制Volley缓存图片到磁盘
- Microsoft .NET Framework 4.6.1官方地址
- ARM伪指令详解
- cf-公式专场
- 1101. Quick Sort (25)
- ps中的用法,切图抠图
- 电影入侵电竞圈,这是要为浮躁添把柴?
- 《Linux重要基础命令回顾复习》
- NetLogo编程的几个小技巧
- iOS开发-------初探运行时runtime
- ORACLE多表关联UPDATE 语句
- C++学习笔记:友元函数和友元类
- 用the silver searcher与alfred从一堆文件中快速查找信息
- 基于Javascript实现倒计时功能
- goto语句学习的实例