# list

objeto do Scilab e definição de lists ("listas")

## Seqüência de Chamamento

    list(a1,....an)

## Descrição

Cria um `list` com elementos `ai`'s que são elementos Scilab arbitrários (`matrix, list,...`). O tipo de objetos `list` é 15. `list()` cria o `list` vazio (0 elementos).

## Operações em Listas

extração

  `[x,y,z...]=L(v)` onde `v` é um vetor de índices; `[x,y,z]=L(:)` extrai todos os elementos.

inserção no índice i

  `L(i)=a` (note que não é errado usar `L(i)=a` com i > 1 + size(L) mas algumas entradas de lista estão então indefinidas e sua extração levanta um erro).

anexar elemento no fim da lista

  `L($+1)=e`.

anexar elementos no início da lista

  `L(0)=e`. (note que após esta operação e está no índice 1, os elementos iniciais foram movidos para a direita).

deleção

  `L(i)=null()` remove o i-ésimo elemento da lista `L`.

concatenação de duas listas

  `L3 = lstcat(L1,L2)`.

número de elementos de uma lista

  você pode usar tanto `nb_elm = size(L)` ou `nb_elm = length(L)`.

iterações com uma lista

  é possível usar uma lista `L` com um laço ("loop") for: `for e=L,...,end` éum laço com `length(L)` iterações, a variável de laço `e` sendo igual a `L(i)` na i-ésima iteração.

## Observações

O Scilab também possui outros tipos de listas, o tipo tlist (lista com tipo) e o tipo mlist que são úteis para definir um novo tipo de dado com o operador overloading facilities (hypermatrices (hipermatrizes), que são arrays multi-dimensionais no Scilab, são, na verdade, mlist).

struct do Matlab também estão disponíveis.

## Exemplos

    l = list(1,["a" "b"])
    l(0) = "foo"
    l($+1) = "olá"
    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)  // deve ser zero

## Ver Também

- null
- lstcat
- tlist
- mlist
- insertion
- extraction
- size
- length