2016-09-21 84 views
0

有没有办法避免第一个梳子函数参数?忽略多参数currying函数的第一个参数

def sum(comb: (Int, Int) => Int)(f: Int => Int)(a: Int, b: Int): Int = { 
    if(a >= b) b 
    else comb(f(a), sum(comb)(f)(a + 1, b)) 
} 
val func = sum(x => x)(1, 5) 

例如,我可以宣布这样的事情,这样我可以稍后在代码中定义我的组合功能,或者是强制我改变参数列表的顺序?

+0

'总和(_:(INT,INT)=>强度)(X => X)(1,5 )',type推论在这里不起作用 –

+0

'val f:((Int,Int)=> Int)=> Int = sum(_)(x => x)(1,5)' –

+0

所以你的答案正合适。那么,你能否正确发布它们以便我可以选择一个正确的? – docff

回答

0

作为评价所提到的,或者:

val f: ((Int, Int) => Int) => Int = sum(_)(x => x)(1, 5) 

sum(_: (Int, Int) => Int)(x => x)(1, 5)