Pour définir une fonction, vous devez utiliser le mot-clé function suivi du nom de votre fonction en notation préfixe.suffixe (ou simplement suffixe pour une fonction locale à la connexion), et les paramètres entre parenthèses (ou des parenthèses vides s'il n'y a aucun paramètre). Vous pouvez utiliser return pour retourner une valeur ou quitter la fonction, comme en C:
function ajouter(x,y) {
z = x+y;
return z;
};
function ecrire(x) {
echo x;
if (x<0)
return
else
echo sqrt(x);
};
Il faut obligatoirement un point-virgule ou un autre séparateur de commande à la fin de la définition de la fonction, puisque que définir une fonction est une commande comme tout autre commande URBI.
Les paramètres sont toujours locaux à l'appel de la fonction. Les variables non globales (i.e. sans préfixe) dans le corps de la fonction sont également locales à l'appel de la fonction. Etudions l'exemple suivant:
a=4;
b=5;
function afficher(b) {
afficher_b:b; // b est local
a=b; // cree une variable locale a
afficher_a:a;
};
display(10);a:a;b:b;
[139464:display_b] 10.000000
[139464:display_a] 10.000000
[139464:a] 4.000000
[139464:b] 5.000000
Une bonne habitude est d'isoler vos fonctions dans un fichier séparé comme mesfonctions.u, et de les charger avec la commande: load("mesfonctions.u"). Cela peut être fait dans le fichier URBI.INI par exemple, ou quand vous avez réellement besoin.
Pour retirer la définition d'une function, utiliser simplement:
delete mafonction;