function curry2(f)
return function(x)
return function(y)
return f(x,y)
end
function add(x,y)
return x+y
local adder = curry2(add)
assert(adder(3)(4) == 3+4)
local add2 = adder(2)
assert(add2(3) == 2+3)
assert(add2(5) == 2+5)