Task

Create a function, compose,   whose two arguments   f   and   g,   are both functions with one argument.



The result of compose is to be a function of one argument, (lets call the argument   x),   which works like applying function    f    to the result of applying function    g    to    x.



Example

 compose(f, g) (x) = f(g(x))



Reference: Function composition

Hint: In some languages, implementing compose correctly requires creating a closure.




set_namespace(rosettacode);
 
begin_funct(compose)_arg(f, g);
    []_ret(x)_calc([f]([g]([x])));
end_funct[];
 
me_msg()_funct(compose)_arg(f)_sin()_arg(g)_asin()_var(x)_value(0.5);    // result: 0.5
 
reset_namespace[];