Les intervalles
  Maintenant, nous allons aborder une des plus puissantes capacité de Scriptol, les intervalles.
 Les intervalles sont utilisés par les vieux langages classique seulement dans les structures de contrôle "for", et dans d'autres langages modernes, avec des syntaxes différentes selon le contexte. En Scriptol, ce concept est unifié et la même syntaxe s'utilise pour toutes sortes d'intervalles, il s'agit d'un couple d'indices séparés par deux points: début .. fin.
Exemples:

0 .. 10
x .. y
x * 2 / 4 .. y + 10

et ainsi de suite.
Vous pouvez écrire aussi: [x .. ] qui signifie: de x jusqu'à la fin, et
[.. y] qui signifie: du début jusqu'à y inclus.

Vous pouvez utiliser un intervalle pour tester si une valeur fait partie d'une liste:
if x in 10..100
Vous pouvez l'utiliser pour parcourir une liste:
for x in 1..100
Vous pouvez extraire une partie de liste:
array b = a[x .. y]
Et enfin, vous pouvez remplacer une partie de liste:
a[x .. y] = une autre liste

Pour le moment, nous allons étudier seulement le subscripting d'array et dict. La syntaxe est la même pour les deux structures car on utilise les positions et non les clés.

// Créons une liste:

array a = array(x0, x1, x2, x3, x4, x5, x6, x7, x8)

// Division la liste en trois:
array b = a[ .. 2]
array c = a[3 .. 5]
array d = a[6 .. ]

/*
Maintenant nous avons trois tableaux, avec ces contenus:
a: (x0, x1, x2)
b: (x3, x4, x5)
c: (x6, x7, x8)
*/


// Affichons les tableaux:
b.display()

// etc...

array (
 [0] => x0
 [1] => x1
 [2] => x2
)


et ainsi de suite...

Pour remplacer un intervalle par une autre liste, un simple assignement suffit:

  a[3..5] = array("a", "b", "c")


Le contenu doit devenir: (x0, x1, x2, "a", "b", "c", x6, x7, x8)

Une sous-liste peut être remplacée soit par une autre liste, ou une valeur simple, la syntaxe est la même:

   a[3..5] = "xyz"

La liste devient: (x0, x1, x2, "xyz", x6, x7, x8)

Si nous voulons plutôt remplacer une sous-liste dans le tableau originel, nous la déclarons "not in list" et la syntaxe est simplement:

  a[3..5] = nil

Comme nous avons supprimé la sous-liste 3..5 qui était (x3, x4, x5), le contenu devient mainteant: (x0, x1, x2, x6, x7, x8)

De la même façon que nous pouvons tester si une valeur est à l'intérieur d'une liste, on peut faire le test sur une sous-liste, par exemple:

array a = array("un, "deux", "trois")
if "deux" in a[2..5] print "dedans"


Nous avons vu plus haut comment tester l'appartenance d'une liste à une autre, avec l'opérateur &. On peut l'utiliser avec des sous-listes:

array asub = a[2..3]
if (asub & b[6..8]) = asub) print "dedans"



 Exercices
1) Dans le tableau suivant:
array a = array("as", "roi", "dame", "valet", "10")
Extraire le sous-intervalle d'as à roi et le mettre dans le tableau b.
Il faut le localiser avec la méthode find(text) qui retourne la position.

Réponse