Functies als functie parameters

Het is duidelijk uit een groot aantal voorbeelden dat Maple procedures als parameters procedures kunnen hebben. Denk hierbij aan de functies 'diff', 'int' en vele andere. Het is toch nuttig hier even speciaal de aandacht op te vestigen aangezien een groot aantal programmeertalen waaronder Pascal en Java dit niet toelaten. In Java is deze beperking te omzeilen zoals geillustreerd in het Collections framework.

Een voorbeeld van een hogere orde procedure, dit wil zeggen, een procedure die een procedure als parameter heeft:

> gaussInt := proc(f::procedure)
local x;
int(f(x)*exp(-x^2/2)/sqrt(2*Pi),x);
end:

> gaussInt(x -> x^2);

[Maple Math]

> gaussInt(`sin`);

[Maple Math]

> gaussInt := 'gaussInt':