Section : Domaines
Précédent : Domaines ``mathématiques''

Domaines ``informatiques''

Le principal intérêt des domaines informatiques est la surcharge automatique. Ils permettent aussi de définir un ensemble de fonctions séparément du reste de MuPAD. C'est d'ailleurs comme cela que sont définies les bibliothèques de MuPAD ; les fonctions du module d'intégration ont un nom de la forme intlib::xxx. Un nouveau domaine est créé par domain, et un élément d'un domaine par new. La commande extop accède aux opérandes d'un élément de domaine.

d := domain("d"):
e := new(d, "bernard", {Mathematica, MuPAD});
extop(e, 1);
d::print := proc(x) begin extop(x,1) = extop(x,2) end_proc:
f := new(d, "paul", {MuPAD, MuPAD});
d::_union := proc(x,y) begin new(d,extop(x,1)."+".extop(y,1),
        extop(x,2) union extop(y,2)) end_proc:
e union f;
Seules les procédures du noyau MuPAD sont automatiquement surchargées, comme _union ci-dessus. Pour les procédures définies en MuPAD, il faut explicitement les surcharger.
systemes := proc(x) begin
     if x::systemes<>FAIL then 
                 return(x::systemes(args(1..args(0)))) end_if;
     procname(x)
end_proc:
systemes(e);
d::systemes := proc(x) begin extop(x,2) end_proc:
systemes(e);
Là encore, on trouvera de plus amples détails dans le document dom-pack de l'aide en ligne hypertexte.