Абстракция булевой функции в Scala

У меня есть функция 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

Но это не работает.

0
задан dips 22 March 2012 в 12:19
поделиться