Scala高级函数--方法函数与柯里化

方法和函数的区别

在函数式编程语言中,函数是“头等公民”,它可以像任何其他数据类型一样被传递和操作
案例:首先定义一个方法,再定义一个函数,然后将函数传递到方法里面

方法

普通方法:
方法的返回值类型可以不写,编译器可以自动推断出来,但是对于递归函数,必须指定返回类型
Scala高级函数--方法函数与柯里化
函数作为参数的方法
Scala高级函数--方法函数与柯里化
在加一层:加深理解,实际不会这么写
Scala高级函数--方法函数与柯里化

函数

函数的两种写法【本质意义为:下图中间的写法的两种精简版】
Scala高级函数--方法函数与柯里化

匿名函数:有函数体没函数名的函数
r.map( _ * 100)
相当于
r.map((x:Int) => x * 100)
其中map内部的为匿名函数,

————–神奇的下划线———- 将方法转换为函数
方法转换为函数
def m1 (x: Int , y:Int):Int = x * y
val fi = m _
f1:Int => Int=

柯里化

柯里化的语法演变过程:
Scala高级函数--方法函数与柯里化

柯里化的意义【转载】 搬运:http://blog.****.net/yangguo_2011/article/details/30730185
Scala高级函数--方法函数与柯里化