• 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
  • 相关阅读:
    《算法竞赛入门经典》(刘汝佳)——排序与检索(基础)
    Python中的GIL
    MongoDB 安装
    python3 报错集合
    socket 实例化方法
    socket入门
    Day_6作业_模拟人生
    高阶函数举例
    面向对象_python
    xml
  • 原文地址:https://www.cnblogs.com/bluejoe/p/5115875.html
Copyright © 2020-2023  润新知