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