Scala:如何传递方法:Int=>;带'的布尔值;不是';接线员?

Scala:如何传递方法:Int=>;带'的布尔值;不是';接线员?,scala,Scala,问题是,我怎样才能通过!f到方法,eval? 我对涉及passToEval参数的变通方法不感兴趣。您可以定义一个函数来否定其输入函数并传递: def isZero(x: Int) = x == 0 def eval(x: Int, g: Int => Boolean) = g(x) //Just passes 0 and f to eval def passToEval(f: Int => Boolean): Boolean = { eval(0, f) } //tru

问题是,我怎样才能通过!f到方法,eval?
我对涉及passToEval参数的变通方法不感兴趣。您可以定义一个函数来否定其输入函数并传递:

def isZero(x: Int) = x == 0

def eval(x: Int, g: Int => Boolean) = g(x)

//Just passes 0 and f to eval
def passToEval(f: Int => Boolean): Boolean = {
    eval(0, f)
}

//true
passToEval(isZero)

您可以定义一个函数来对其输入函数求反并传递:

def isZero(x: Int) = x == 0

def eval(x: Int, g: Int => Boolean) = g(x)

//Just passes 0 and f to eval
def passToEval(f: Int => Boolean): Boolean = {
    eval(0, f)
}

//true
passToEval(isZero)

你特别不知道写什么
passToEval(x=>!isZero(x))
?对,我想让eval的参数来处理这个逻辑你特别不知道写什么
passToEval(x=>!isZero(x))
?对,我希望eval的参数处理该逻辑以任何方式避免更改passToEval的参数?您可以将
not
移动到passToEval中,即
eval(0,not(f))
以任何方式避免更改passToEval的参数?您可以将
not
移动到passToEval中,即
eval(0,not(f))