Question: Explain how maple handles functions

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.
end proc:

E(x->2*x, 3);



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?

Please Wait...