# list

Scilab オブジェクトおよびリスト関数定義

## 呼出し手順

    list(a1,....an)

## 説明

要素 `ai`を有する`リスト`を作成します． その要素は任意のScilabオブジェクト(`行列, リスト,...`) です.`リスト`オブジェクトの型は 15 です. `list()` は空の `リスト` (要素数0)を 返します.

## リストの処理

展開

  `[x,y,z...]=L(v)` ただし, `v` は添え字のベクトルです; `[x,y,z]=L(:)` は全要素を展開します.

添字iに挿入

  `L(i)=a` (i > 1 + size(L) により `L(i)=a`としてもエラーとなりませんが, この結果いくつかのリストのエントリが未定義となり, これらを展開する時にエラーを発生することに注意してください).

要素を末尾に追加

  `L($+1)=e`.

要素を先頭に追加

  `L(0)=e`. (この操作の後, `e`は添字1にあり, 最初の要素は右にシフトすることに注意してください).

削除

  `L(i)=null()` removes the i-th element of the list `L`.

二つのリストを結合

  `L3 = lstcat(L1,L2)`.

リストの要素数

  `nb_elm = size(L)` または `nb_elm = length(L)`のどちらかを 使用することができます.

リストで反復処理

  for ループでリスト`L` を使用することが可能です: `for e=L,...,end` は `length(L)` 回の反復処理を行うループで, ループ変数`e` はi番目の反復で `L(i)` となります.

## 注記

Scilab では他の種類のリストである tlist 型(型付のリスト),mlist型 も提供されています. これらのリストは,演算子 オーバーロード機能を 有する新しいデータ型を定義する際に有用です (Scilabの多次元配列である 超越行列 は実際にはmlistです).

Matlab struct も利用可能です.

## 例

    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)  // must be zero

## 参照

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