:
, :
def sum(f:Int=>Int, a:Int, b:Int) = f(a) + f(b)
def sumInts(a:Int,b:Int)=sum(x=>x,a,b)
def sumCubes(a:Int,b:Int)=sum(x=>x*x*x,a,b)
, :
def sum(f:Int=>Int):(Int,Int)=>Int={
def sumF(a:Int,b:Int):Int=
if(a>b) 0 else f(a)+ sumF(a+1,b)
sumF
}
, :
def sumInts=sum(x=>x)
def sumCubes=sum(x=>x*x*x)
:
sumInt(10,11) + sumCubes(3,4)
sumInt sumCubes, :
sum(cube)(3,4)
currying , , :
def sum(f:Int=>Int)(a:Int,b:Int):Int=
if(a>b) 0 else f(a)+sum(f)(a+1,b)