Le code de toutes les fonctions qui ne sont pas dans le noyau de
MAPLE est accessible aux utilisateurs en utilisant
interface(verboseproc=2)
et print
. De plus, les
fonctions ne sont, en général, pas protégées. Il est donc tout à
fait possible de récupérer le code existant pour une fonction de
MAPLE, afin de la modifier et écraser l'ancienne fonction à l'aide
de la fonction munie d'un nouveau code. Il s'agit en fait là de
remplacer le code existant par un nouveau code. À partir de la
version V-3, la commande protect
empêche qu'un utilisateur
écrase malencontreusement une fonction du système. Toutefois la
fonction unprotect
permet d'enlever une protection sur une
fonction système, de remplacer malgré tout le code.
Il est également possible de rajouter de nouvelles
caractéristiques à des fonctions de MAPLE. Nous avons vu que les
fonctions simplify
,
type
ou même int
ne sont pas chacunes une unique
fonction, mais une
multitude de fonctions connues sous le nom de `symplify/foo`
par exemple. En conséquence on peut rajouter une méthode afin que
par exemple la fonction simplify
sache simplifier un nouveau type de
données.
En fait, MAPLE est un système (de ce point de vue) très ouvert, très modifiable et extensible. De nombreux rajouts, améliorations, packages sont disponibles dans le domaine public.