zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    c# 菱形,三角形
    c#判断一个时间的时间段
    c# 1,判断是否为正整数 2 判断体重
    数据库 基础
    c#100 计算行李重量
    c#基础 1,100以内的与7相关的数字;2,计算器,
    String 类;Math 类
    常用的C#类
    冒泡排序与快速排序
    数据库基本知识
  • 原文地址:https://www.cnblogs.com/bluejoe/p/5115875.html
Copyright © 2011-2022 走看看