Scala: Как использовать функцию в качестве параметра? - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть функция:

sigma(x: Int, y: Int, z: Int, a: Int)(f: (Int, Int, Int, Int) => Double): Double

Мне нужно установить его как параметр другой функции:

bigPi(x: Int, y: Int, z: Int, a: Int)('Here should be sigma'):Double

Как правильно определить тип сигмы и использовать его в качестве аргумента bigPi?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Попробуйте это:

def bigPi(x: Int, y: Int, z: Int, a: Int)(s: (Int, Int, Int, Int) => ((Int, Int, Int, Int) => Double) => Double) = whatever
0 голосов
/ 07 ноября 2018
def sigma(x:Int, y:Int, z:Int, a:Int)(f:(Int,Int,Int,Int) => Double):Double = 1.1

def bigPi(x: Int, y: Int, z: Int, a: Int)(
             f: (Int,Int,Int,Int) => ((Int,Int,Int,Int) => Double) => Double
         ):Double = 2.2

bigPi(1,2,3,4)(sigma)

IntelliJ IDE говорит, что есть лишние скобки, но компилятор говорит иначе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...