How is it possible to compose functions?
I came up with following solution that is not satisfactory for two reasons:
    1. the compose function should be argument agnostic
       here it is explicitly coded for (int) -> (int)
2. the composition itself requires additional lambda expressions
       I would like to write compose(f,g)

```dimport std.stdio;

// Function composition:

int f(int x) { return x*2;} ;
int g(int x) { return x+2;} ;

int delegate (int) compose( int delegate(int)second, int delegate(int)first)
    {
            return ((int i) => second(first(i)));
    }

    void main()
    {
             writeln( compose((x) => f(x),(x) => g(x))(2));
             writeln( compose((x) => g(x),(x) => f(x))(2));
    }
    ~
    ~
    ~

```

Reply via email to