Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/07170.jsonl.gz/1327

Fonctions utilisateur
Les fonctions utilisateur s'écrivent dans l'éditeur de scripts de XS.
L'utilisateur peut définir ses fonctions à l'aide du mot-clé function. Les noms des paramètres que la fonction reçoit sont séparés par deux points (:). La valeur retournée par la fonction est précédée du mot-clé return. L'exécution de la fonction s'interrompt à la ligne où se trouve ce mot-clé.
Exemple
function estPositif:nombre
if nombre > 0
return yes
else
return no
end
Les paramètres d'une fonction peuvent être précédés d'un des mots-clé suivant lors de la déclaration de la fonction:
(var)
Le paramètre peut être modifié, ce qui entraîne la modification de la variable passée lors de l'appel de la fonction.
(const)
Le paramètre ne peut être modifié lors de la fonction. Permet d'optimiser l'exécution de la fonction, puisque la variable n'est pas copiée avant l'exécution de la fonction.
(out)
Le paramètre crée la variable passé lors de l'appel de la fonction.
Si aucun mot-clé nest précisé, le paramètre peut être modifié sans que la valeur de la variable passée lors de l'appel de la fonction ne soit modifiée. En fait, une copie de la valeur est effectuée avant l'exécution de la fonction.
Exemples
Soit les fonctions suivantes:
function tripleDe:(const)x
return 3 * x
function tripler:(var)x
x = 3 * x
function quadrupleDe:x
x *= 4
return x
Considérez l'exécution des commandes suivantes:
>> n = 7
>> tripleDe:n
21
>> n
7
>> tripler:n
>> n
21
>> n = 4
>> quadrupleDe:n
16
>> n
4
Le mot-clé global permet de définir des variables globales. Une variable globale est une variable propre au document, par opposition aux autres variables d'une fonction qui sont effacées à la fin de l'exécution de la fonction.
Une variable globale permet ainsi de maintenir (c'est-à-dire créer, utiliser ou modifier) des données propres au document, comme par exemple l'ensemble des textes d'un corpus.
Le tutoriel moyen décrit différentes fonctions utilisant cette technique pour économiser à l'utilisateur de préciser un paramètre lors de l'appel de fonction.