<< Overload Toolbox Overload Toolbox

Overload Toolbox >> Overload Toolbox > overload

overload

surcharge les fonctions définies par l'utilisateur

Séquence d'appel

overload(funnam [,type])
overload()
overload(table_of_overloaded_fun)

Paramètres

funnam

nom d'une fonction

type

un vecteur optionel (1 par n) de chaînes contenant les types déjà gérés par la fonction (voir overloading pour les codes des différents types)

table_of_overloaded_fun

une matrice (n par 2) de chaînes de caractères contenant dans la première colonne le nom des fonctions qui gèrent un type spécifique et dans la seconde le nom de la fonction réellement appelée.

Description

Cette fonction permet de surcharger des fonctions définies par l'utilisateur.

La fonction surchargée doit exister soit en mémoire soit dans un fichier accessible.

Par exemple, l'appel overload(funnam,['s','c']) crée une copie %s_fun=fun, crée une entrée %c_fun dans la table et celle-ci pointe vers '%s_fun', efface fun et crée un point d'entrée fun dans la libraire dynamique. Après cela, l'appel de fun(arg1,...) sera transformé en %<type_of_arg1>_fun(arg1,...).

Il faut faire attention à ce que cette toolbox ne peut surcharger que 98 fonctions.

Exemples

//on définit une fonction inc pour les réels (type 's'),
//les polynômes ('p') ou les booleéns ('b')
//mais pas pour les chaînes ('c')
deff('y=inc(x)','y=x+1')

//on définit une focntion %c_inc qui
//gère le type chaîne
deff('y=%c_inc(x)','y=code2str(str2code(x)+1)')

//on surcharge la fonction inc et l'on préserve
//les types 's', 'p' et 'b'
overload('inc',['s' 'p' 'b'])

//on peut maintenant utiliser inc avec les constantes,
//les polynômes ou les chaînes
inc(2),inc(1+%s+%s^2),inc(%t)
inc('abcdef')

//pour voir les types gérés par %s_inc
a=overload()

//on peut enlever le type 'p'
a(2,:)=[],overload(a)
inc(%s)

Auteur

Voir aussi


Report an issue
<< Overload Toolbox Overload Toolbox