2016-09-21 96 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)