int One() => 1;
int Two() => 2;
int Three() => 3;
int Four() => 4;
int Five() => 5;
int Six() => 6;
int Seven() => 7;
int Eight() => 8;
int Nine() => 9;
int Ten() => 10;
// javascript/dynamic program
Func<int, int> TenAddFunc = AddCalc(Ten());
Func<int, int> TenSubFunc = SubCalc(Ten());
Func<int, int> TenMulFunc = MulCalc(Ten());
Func<int, int> TenDivFunc = DivCalc(Ten());
Func<int, int> FiveAddFunc = AddCalc(Five());
Func<int, int> FiveSubFunc = SubCalc(Five());
Func<int, int> FiveMulFunc = MulCalc(Five());
Func<int, int> FiveDivFunc = DivCalc(Five());
WriteLine("----");
WriteLine(TenAddFunc(20));
WriteLine(TenSubFunc(20));
WriteLine(TenMulFunc(20));
WriteLine(TenDivFunc(20));
WriteLine("----");
WriteLine(FiveAddFunc(20));
WriteLine(FiveSubFunc(20));
WriteLine(FiveMulFunc(20));
WriteLine(FiveDivFunc(20));
WriteLine("----");
// javascript closure program
Func<int, int> AddCalc(int su1)
{
return suja => suja + su1;
}
Func<int, int> SubCalc(int su1)
{
return suja => suja - su1;
}
Func<int, int> MulCalc(int su1)
{
return suja => suja * su1;
}
Func<int, int> DivCalc(int su1)
{
return suja => suja / su1;
}