Я новичок в функции заказа более высокого порядка Scala, и я немного путаюсь в этом. До моего знания, HOF могут принимать функции в качестве аргументов, какБолее высокий заказ Scala Func
val c = (x:Int)=> x + 3
здесь это означает, что принимать один аргумент типа Int и возвращает Int.
Но я не могу понять приведенный ниже код, поскольку он принимает функции как аргумент типа Int => Int, но означает, что он принимает один аргумент и возвращает Int, но при его реализации они отправляют функцию, которая принимает два Int арг.
def calculate(f: Int => Int, a: Int, b: Int) =
if (b != 0) f(a, b) else throw Exception("Divide by 0")
def divide(a: Int, b: Int) = a/b
calculate(divide, 2, 0) // => Exception
calculate(divide, 4, 2) // => 2
Может кто-нибудь помочь мне в понимании этого. Я ценю, если кто-то может поделиться некоторыми ссылками кода, где я могу больше узнать о HOF.
Это даже не компилируется. – pedrofurla
'val c = (x: Int) => x + 3' не является функцией более высокого порядка. – pedrofurla