Scilab Function
Last update : 30/11/2005

list - Objet Scilab, Définition d'une liste

### Calling Sequence

  `list(a1,....an)`

### Description

Crée une `liste` avec les éléments `ai` qui sont des objets Scilab arbitraires (`matrice, liste, ...`). Le numéro de type des objets liste (renvoyé par la fonction `type`) est 15.

`list()` crée une liste vide (0 élément).

### Operations sur les listes

  - extraction: `[x,y,z...]=L(v)` où `v` est un vecteur d'indices; `[x,y,z]=L(:)` extrait tous les éléments.
  - insertion en position i: `L(i)=a` . Remarque : l'opération `L(i)=a` avec i > 1 + size(L) ne génère pas d'erreur les entrées en position 1 + size(L), ..., i-1 étant alors indéfinies. Par contre l'extraction d'un élément indéfini en génère une.
  - ajouter un élément en queue de liste: `L($+1)=e`.
  - ajouter un élément en tête de liste: `L(0)=e`. (remarque : après cette opération `e` est en position 1, la position des éléments initiaux de la liste étant décalée vers la droite).
  - suppression: `L(i)=null()` supprime l'élément en position i de la liste `L`.
  - concaténation de deux listes: `L3 = lstcat(L1,L2)`.
  - nombre d'éléments d'une liste: vous pouvez utiliser `nb_elm = size(L)` ou encore `nb_elm = length(L)`.
  - itérer avec une liste: il est possible d'utiliser une liste `L` pour piloter une boucle `for` : `for e=L,...,end` est une boucle avec `length(L)` itérations, la variable `e` de la boucle prenant la valeur `L(i)` à l'itération i.

### Remarques

Scilab propose deux autres sortes de liste, les `tlist` (pour listes typées) et les `mlist` qui sont très utiles pour définir de nouveaux types de données avec possibilité de surcharge des opérateurs classiques (voir `overloading`). Les tableaux multidimensionnels de scilab (les `hypermatrices`) sont en fait codés comme des mlist.

Les structures Matlab (struct) sont aussi utilisables.

### Examples

    l = list(1,["a" "b"])
    l(0) = "foo"
    l($+1) = "hello"
    l(2) = "toto"
    l(3) = rand(1,2)
    l(3) = null()
    lbis = list("gewurtz", "caipirina" ,"debug")
    lter = lstcat(l,lbis)
    size(lter) - size(lbis) - size(l)  // doit être nul

### See Also

`null`, `lstcat`, `tlist`, `insertion`, `extraction`, `size`, `length`,