在 scala 中学习 HOF 时,你能用 example.Encountered 解释这个吗

Can You Explain this with an example.Encountered this when studying HOF in scala

这是 Function.What 这里是参数吗?是函数吗? return 类型是什么?

def sum(f: Int => Int): (Int, Int) => Int = {  
  def sumf(a: Int, b: Int): Int = {...}  
  sumf  
} 

这是一个名为 sum 函数 方法。它以一个函数作为参数,从 IntInt 和 returns 一个函数,当用一对 Int 调用时 returns 另一个 Int .

实际结果取决于实现,但我们可以将其定义为:

def sum(f: Int => Int): (Int, Int) => Int = {  
  def sumf(a: Int, b: Int): Int = {
    f(a) + f(b)
  }  
  sumf  
}

或者简单地说:

def sum(f: Int => Int): (Int, Int) => Int = {  
  (a: Int, b: Int) => f(a) + f(b)
}

在这种情况下,您可以这样称呼它:

def f(a: Int): Int = a * a
def g(a: Int, b: Int): Int = sum(f)(a, b)
val x: Int = g(3, 4) // x = 25