using System;
public class Application {
public delegate double NumericFunction(double d);
public static NumericFunction Compose
(NumericFunction f, NumericFunction g){
return delegate(double d){return f(g(d));};
}
public static void PrintTableOfFunction
(NumericFunction f, string fname,
double from, double to, double step){
double d;
for(d = from; d <= to; d += step){
Console.WriteLine("{0,35}({1,-4:F3}) = {2}", fname, d, f(d));
}
Console.WriteLine();
}
public static double Square(double d){
return d*d;
}
public static double Cubic(double d){
return d*d*d;
}
public static double Minus3(double d){
return d-3;
}
public static void Main(){
PrintTableOfFunction(Compose(Cubic, Minus3),
"Cubic of Minus3", 0.0, 5.0, 1.0);
PrintTableOfFunction(
Compose(Square, delegate(double d){
return d > 2 ? -d : 0;}),
"Square of if d>2 then -d else 0", 0.0, 5.0, 1.0);
}
} | |
A method named Compose.
Input: Two numeric functions.
Output: A numeric function.
Prints a table of the functional composition of
the numeric functions Cubic and Minus.
Prints a table of the functional composition of
Square and the given anonymous numeric function.
|