У меня есть функция foo которая принимает логическую функцию
def foo( f:(_)=>Boolean ) = //do something with f
Я могу вызвать foo следующим образом
foo( (x:Int) => x == 0 )
Теперь я хочу изменить foo, чтобы он принимал любую функцию, которая возвращает логическое значение. например. модифицированный foo должен работать в следующих случаях.
foo( (x:Int, y:Int) => x == y)
foo( (x:Int, y:Int, z:Int) => x == y && y == z)
foo( (x:Double, y:Double, z:Double, p:Double) => x < y && y < z && z < p)
//and so on...
Моей первой попыткой было модифицировать foo следующим образом
def foo2( f:(_*)=>Boolean ) = //do something with f
Но это не работает.