Aller au contenu principal

Listes

Limitation actuelle

Actuellement Althread ne supporte pas la déclaration des listes avec initialisation directe : let ma_liste: list(int) = [10, 20];

Les listes doivent être déclarées vides puis remplies avec les méthodes push().

Les listes en Althread disposent de plusieurs méthodes intégrées pour manipuler leurs éléments.

push(element) - Ajouter un élément

Ajoute un élément à la fin de la liste.

Signature :

list.push(element: T) -> void

Exemple :

let ma_liste: list(int); // []
ma_liste.push(1); // [1]
ma_liste.push(3); // ma_liste devient [1, 3]

len() - Obtenir la taille

Retourne le nombre d'éléments dans la liste.

Signature :

list.len() -> int

Exemple :

let ma_liste: list(int);
ma_liste.push(1);
ma_liste.push(3);
let taille = ma_liste.len(); // taille = 2

at(index) - Accéder à un élément

Retourne l'élément à l'index spécifié.

Signature :

list.at(index: int) -> T

Exemple :

let ma_liste: list(int);
ma_liste.push(1);
ma_liste.push(3);
print(ma_liste.at(1)); // affiche: 3

Erreurs :

  • Index négatif
  • Index supérieur ou égal à la taille de la liste

set(index, element) - Modifier un élément

Modifie l'élément à l'index spécifié avec une nouvelle valeur.

Signature :

list.set(index: int, element: T) -> void

Exemple :

let ma_liste: list(int);
ma_liste.push(1);
ma_liste.push(3); // ma_liste : [1, 3]
ma_liste.set(1, 5); // ma_liste devient [1, 5]
print(ma_liste.at(1)); // affiche: 5

Erreurs :

  • Index négatif
  • Index supérieur ou égal à la taille de la liste
  • Type de l'élément incompatible avec le type de la liste

remove(index) - Supprimer un élément

Supprime et retourne l'élément à l'index spécifié.

Signature :

list.remove(index: int) -> T

Exemple :

let ma_liste: list(int);
ma_liste.push(1);
ma_liste.push(3); // ma_liste : [1, 3]
let element_supprime = ma_liste.remove(1); // element_supprime = 3
// ma_liste devient [1]

Erreurs :

  • Index négatif
  • Index supérieur ou égal à la taille de la liste

Exemple d'utilisation complète

main {
let processus: list(proc(A));

// Créer et ajouter des processus
for i in 0..3 {
let p = run A(i);
processus.push(p);
}

print("Nombre de processus:", processus.len());

// Accéder aux processus
for i in 0..processus.len() {
let p = processus.at(i);
print("Processus à l'index", i, ":", p);
}

// Supprimer le dernier processus
if processus.len() > 0 {
let dernier = processus.remove(processus.len() - 1);
print("Processus supprimé:", dernier);
}
}