Opérateurs de tableaux
Opérateurs arithmétiques

 Un élément, ou un groupe d'éléments, peut être ajouté ou supprimé avec les opérateurs + et -.
 Le symbole + équivaut à la méthode push() quand il s'agit d'un seul élément. Il équivaut à la méthode merge() quand il s'agit d'un autre tableau.
 Si l'on veut ajouter un tableau en tant qu'élement (donc créer un tableau à deux dimensions), on assigne le tableau à ajouter à un dyn auparavant.
  Le symbole - n'a pas d'équivalent direct, il peut correspondre à la méthode pop(int) avec un index en paramètre.

Exemples d'addition suivie d'une soustraction de tableaux. array a = array("un", "deux")
array b

b = a + array("trois", "quatre")
b.display()

a = b - array("un", "quatre")
a.display()
Affiche successivement: array(
 0 : un
 1 : deux
 2 : trois
 3 : quatre
)

array(
 0 : deux
 1 : trois
)


Seuls les opérateurs arithmétiques + et - sont utilisables sur les tableaux, * et / n'auraient pas de sens.


Opérateurs logiques

Vous pouvez utiliser sur des listes dynamiques (array ou dict) les opérateurs
binaires:

&
|
^
intersection
union
complément d'intersection


L'intersection de deux listes retourne l'ensemble des éléments qui font partie
à la fois des deux listes.

Exemples d'intersection array a = array(1,2,3,4) & array( 3,4,5,6)
a.display()
Affiche: array(
 0 : 3
 1 : 4
)


L'union de deux listes est une nouvelle liste composée des éléments de la première, plus ceux de la seconde, sauf ceux qui font déja partie de la première.

Exemples d'union: array a = array(1,2,3,4) | array( 3,4,5,6)
a.display()
Affiche: array(
 0 : 1
 1 : 2
 2 : 3
 3 : 4
 4 : 5
 5 : 6
)


Grâce à ces opérateurs puissants, vous pouvez accomplir des opérations aussi importantes que de tester si une liste fait partie d'une autre liste, avec une seule instruction!
Soient a et b deux tableaux, pour savoir si a fait partie de b, utiliser cette expression:
  (a & b) = a
Elle retourne vrai si a fait partie de b, et faux autrement.
Un exemple concret en est donné dans le script "fcat.sol".


L'opérateur "in"

Cet opérateur spécial peut être utilisé pour tester si une valeur est contenue dans une liste (array, dict ou même un text), et également pour parcourir le contenu.

La syntaxe pour tester l'appartenance est:
if variable in array

Exemples de "in" array a = array(1,2,3,4)
if x in a print "dedans"
if x in array(1,2,3) print "dedans"


Pour parcourir le tableau, la syntaxe est:
for variable in array

Exemples de boucle: for text t in array("un", "deux", "trois")
  print t
/for
Affiche: > un
> deux
> trois


L'opérateur "nil"

Vous voulez chercher l'objet y à l'intérieur du tableau a.
dyn x = a.find(y)
Si y n'est pas trouvé, la valeur de x sera "nil".
Nil vient du langage Lisp, et signifie que l'élément n'est pas dans la liste (not in list).

Si vous voulez supprimer un élément à la position k, tapez:
a[k] = nil

 Notez que pour insérer la valeur v à l'indice n on utilise une méthode de tableau:
a.insert(n, v).


 Exercices
1) Soit le tableau a = array(1,2,3,4,5,6)
Supprimer tous les éléments impairs.
Utiliser une boucle dont l'en-tête est:
for int i in a.size() - 1 .. 0 step -1

Réponse