Download documentation AJL

Transcript
documentation AJL
Un opérateur ou une fonction appliquée sur une liste peut s'appliquer à la liste en tant que contenant,
Exemple : {1,2} "ajouté à" {3,4} --> {1,2,3,4} // on additionne les listes
ou bien s'appliquer à chaque élément de la liste.
Exemple : {1,2} "ajouté à" {3,4} --> {4,6} // on additionne entre eux les éléments des listes
La règle, et les notations choisies dans EEA sont simples et homogènes :
- Les opérateurs "classiques" (+, - , =, etc..), ou les fonctions, s'appliquent toujours à la liste en tant que
contenant. L'idée est de coller au plus près le mode de fonctionnement relatif aux chaînes de caractères,
dont on peut considérer qu'elles sont comme des listes de simples caractères. Ainsi {"a","b"} + {"c","d"} =
{"a","b","c","d"} tout comme "ab"+"cd"="abcd".
- Pour qu'un de ces opérateurs ou fonctions s'applique à chaque élément de la liste, il faut utiliser la
notation ° accolée à l'opérateur voulu. Exemple : {1,2} °+ {3,4} --> {4,6} ou {"a","b"} °+ {"c","d"} -->
{"ac","bd"}
- Et nous verrons l'arrivée de quelques nouvelles instructions, spécifiques des listes.
Commençons passer en revue le fonctionnement des opérateurs qui travaillent sur les listes en tant que
contenant. Nous reviendrons plus tard sur la très puissante notation ° (rond).
(2.1) OPERATIONS SUR LES LISTES EN TANT QU'ENSEMBLES D'ELEMENTS
Dans cette catégorie, la valeur des éléments d'une liste n'est pas modifiée, mais leur nombre ou leur
position dans la liste résultat peut changer. Globalement, le fonctionnement des opérateurs exposés ici est
consistant avec leur fonctionnement classique sur les chaînes de caractères,qui sont déjà des entités
proches de la notion intuitive de liste.
0) affectation =
Trivialement, L'opérateur = permet d'affecter une liste à une variable
LISTE1 = {1,2,3,4,5}
LISTE2 = LISTE1
1) l'opérateur +, concaténation.
Comme pour les chaînes de caractères, + est une simple concaténation.
trivialement {1,2} + {3,4,5} --> {1,2,3,4,5}
2) l'élimination De manière consistante avec l'opérateur - portant sur les chaînes de caractères (rappel : "ELIMINATION" "NI" --> "ELMATO"), l'opérateur - portant sur des listes élimine du 1er argument tout élément présent dans
le second argument.
{0,5,"N",3,"X",5,"NX"} - { 5,"X" } --> { 0,"N",3,"NX"}
3) l'inversion De manière consistante avec l'opérateur - unaire portant sur une chaîne de caractères, l'opérateur - portant
sur une seule liste inverse l'ordre des éléments de la liste.
- {0,5,7,"N",3,"X",5,"NX"} --> { "NX",5,"X",3,"N",7,5,0}
4) les décalages << et >>
On éjecte les éléments d'une liste par la droite ou par la gauche. Les éléments éjectés sont simplement
éliminés.
LA = {1,2,3,4,5}
LA >> 2 --> {1,2,3} (on a éjecté 2 éléments par la droite)
LA << 3 --> {4,5} (on a éjecté 3 éléments par la gauche)
5) la rotation <>
On fait cycler des éléments d'une liste par la droite ou par la gauche, les éléments sortis d'un côté
réapparaissent de l'autre. Les valeurs positives font cycler de gauche à droite, les valeurs négatives de droite
217 / 227