scala学习笔记:高阶函数
scala> def power(y:Double)=(x:Double)=>Math.pow(x,y)
warning: there were 1 deprecation warnings; re-run with -deprecation for details
power: (y: Double)Double => Double
scala> val square=power(2)
square: Double => Double = <function1>
scala> val squareRoot=power(0.5)
squareRoot: Double => Double = <function1>
scala> square(10)
res0: Double = 100.0
scala> squareRoot(100)
res1: Double = 10.0
也可以定义成:
scala> def power = (x:Double)=> ((y:Double) => math.pow(x, y))
power: Double => Double => Double
scala> power(4)(3)
res8: Double = 64.0
也可以写成:
scala> :paste
// Entering paste mode (ctrl-D to finish)
def power(x:Double,y:Double) = math.pow(x, y)
def square=power(_:Double,2)
def squareroot(x:Double)=power(x,0.5)
square(3)
squareroot(3)
// Exiting paste mode, now interpreting.
power: (x: Double, y: Double)Double
square: Double => Double
squareroot: (x: Double)Double
res8: Double = 1.7320508075688772
柯里化之后:
def power(x:Double)(y:Double) = math.pow(x, y)
def square=power(_:Double)(2)
square(3)
def squareroot(x:Double)=power(x)(0.5)
squareroot(3)
power: (x: Double)(y: Double)Double
square: Double => Double
squareroot: (x: Double)Double
res7: Double = 1.7320508075688772
+++++++++++++++++++++++++++++++++++++++++++
如本文存在任何侵权部分,请及时告知,我会第一时间删除!
转载本博客原创文章,请附上原文@cnblogs的网址!
QQ: 5854165 我的开源项目 欢迎大家一起交流编程架构技术&大数据技术! +++++++++++++++++++++++++++++++++++++++++++
如本文存在任何侵权部分,请及时告知,我会第一时间删除!
转载本博客原创文章,请附上原文@cnblogs的网址!
QQ: 5854165 我的开源项目 欢迎大家一起交流编程架构技术&大数据技术! +++++++++++++++++++++++++++++++++++++++++++