I know how to define functions and generally how to pass them to another function and usually everything works out... rarely though I run in to problems and my lack of how maple works internally becomes a stumbling block. I usually just hack things together. I'd rather understand what exactly is happening.
It seems that apply and unapply have something to do with this.
I usually define functions like this, e.g.,
f := x->x^2 + 3;
g := (f,x)->cos(f(x));
and things like g(f,x) work as expected.
But this doesn't always work.
E := proc(f, depth)
if depth <= 0 then return f; fi:
E(f(x), depth-1); # Trying to actually compute f(f(x)), say. I know we can just loop.
rather than 8x
I see that maple is somehow applying the function but in some odd way(it seems to be creating a function from the variable x and then another function from that).
Anyways, I don't understand the mechanics of it. In some cases f works other one must add the variablef(x), etc...
There seems to be some subtle difference between f and f(x)... In a programing language like C. f is sort of a function pointer and f(x) is an evaluation of f at x. I guess there is something similar goingn on with maple but i've not been able to figure it out. Any ideas?