Currying in C#
Forums:
Func<A, Func<B, C>> Carry<A, B, C>(Func<A, B, C> f) {
return a => b => f(a, b);
}
Func<int, int, int> avg = (a, b) => (a + b)/2;
var n1 = avg(1, 3);
//n1 is 2
var avg1 = Carry(avg)(1);
//avg1 is avg func with first param = 1
var n2 = avg1(3);
//n is 2 = (1 + 3)/2
- Log in to post comments