Définir une fonction

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;