templeet
pix
corner_top pix


Gestion des fonctions utilisateur
defunc

La fonction ~defunc() permet de définir une fonction.

Elle prend deux arguments:

  • Le nom de la fonction
  • Le code de la fonction

Exemple:

~defunc('fonction',
"ma variable vaut :".x
)

L'appel d'une fonction utilisateur se fait exactement de la même manière qu'une fonction Templeet:

~rem(
x="une valeur";
)
~fonction()

Résultat:

ma variable vaut :une valeur

Les fonctions crées de cette manière sont identiques à celles créées par la notation fonction() décrite dans core.

sparam

La fonction ~sparam() permet de récupérer les paramètres passés à une fonction utilisateur.

Elle accepte un seul paramètre :

  • Le numéro du paramètre

Exemple :

~defunc('cherche',
   "Le résultat de la recherche de ".sparam(1)." dans ".sparam(2)." est: ".preg(sparam(1),sparam(2)))

~cherche("/(b.*e)/","abcdef")

sparam(1) va prendre alors la valeur "/(b.*e)/", et sparam(2) "abcdef".

Le résultat est:

Le résultat de la recherche de /(b.*e)/ dans abcdef est: bcde

 

Contrairement à la plupart des langages l'évaluation des paramètres est tardive. Les paramètres ne sont pas évalués au moment de l'appel de la fonction mais au moment de l'appel de la fonction sparam(). Cet aspect a deux conséquences. D'une part il est possible de passer des paramètres qui seront évalués de différentes manières selon le contexte dans la fonction et d'autre part, si on doit accéder plusieurs fois à un paramètre, que son évaluation est constante dans la fonction et que le code passé en paramètre est un peu complexe, il peut être plus intéressant de ne procéder qu'une seule fois à l'évaluation du paramètre, stocker le résultat dans une variable temporaire et utiliser ensuite cette variable pour récupérer le contenu du paramètre.

sparam_num
mapparam
mapparamfl
function_exists
call
anonfunc

Les fonctions anonymes sont des fonctions sans nom qui peuvent être manipulées comme des valeurs.

Exemple:

ma_fonction=anonfunc(
{
x="une valeur";
"valeur de retour de la fonction anonyme"
});

La variable ma_fonction contient la fonction anonyme créée. Cette fonction peut alors être évaluée à l'aide de evalanonfunc:

~evalanonfunc(ma_fonction2)
~string(x)

qui produira comme résultat:

valeur de retour de la fonction anonyme
une valeur

 

Les fonctions anonymes peuvent prendre des paramètres. Ils sont passés à l'appel de evalanonfunc:

~rem(
      x=0;
      ma_fonction=anonfunc(
         {
           x+=sparam(1);
           x;
         }
       );
    )   
 
premier appel: ~evalanonfunc(ma_fonction,5)
deuxième appel: ~evalanonfunc(ma_fonction,8)   

donnera le résultat suivant:

premier appel: 5
deuxième appel: 13   
evalanonfunc

Voir anonfunc.

corner_bottom pix
pix