Fonction en ISETL
Définition :
Comme dans d’autres langages de programmation, une fonction dans ISETL est une entité informatique permettant l’encapsulation d’une partie de code. Elle peut prendre zéro, une ou plusieurs entrées et retourne une valeur (ou non, on parlera alors de procédures).
La syntaxe :
En ISETL, la syntaxe des fonctions ne repose pas sur l’indentation, ni sur des accolades :
Une fonction commence par func(); et se fini par end func();. Ainsi :
VotreFonction := func(param1);
return param1;
end func;
Pour exécuter cette fonction avec le paramètre 5 :
VotreFonction(5);
Vous devriez voir sur le terminal d’exécution affiché “5;”.

Exemples de fonctions
Exemple 1 :
On souhaite créer une fonction retournant le produit cartésien de 2 ensembles.
On appelle produit cartésien de 2 ensembles et , l’ensemble des couples (i,j) tel que et .
Si et , alors .
Nous avons donc :
cartesien := func(e1,e2);
return {[x,y]:x in e1, y in e2};
end func;
La deuxième ligne se lit comme “retourner l’ensemble de tous les couples (x,y) tel que x appartient à e1 et y à e2”.
Exemple 2 :
Pour ce deuxième exemple, nous souhaitons prendre la somme de tous les éléments d’un ensemble mais de façon récursive.
Par exemple pour l’ensemble {1,2,3}, nous souhaitons retourner 6.
Je vous propose une fonction (plus complexe que nécessaire) pour vous familiariser avec la syntaxe ISETL.
somme:=func(e);
local x;
if (#e = 1) then return arb(e);
else
take x from e;
return x + somme(e);
end if;
end func;
“#e” est le cardinal de e, “arb(e)” est un nombre arbitraire contenu dans e, “take x from e” permet de retirer une valeur de e et de la stocker dans une variable x.
Comme escompté :
somme({8,6,9});
retourne “23;”.