在 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
的 函数 方法。它以一个函数作为参数,从 Int
到 Int
和 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
这是 Function.What 这里是参数吗?是函数吗? return 类型是什么?
def sum(f: Int => Int): (Int, Int) => Int = {
def sumf(a: Int, b: Int): Int = {...}
sumf
}
这是一个名为 sum
的 函数 方法。它以一个函数作为参数,从 Int
到 Int
和 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