1 <?xml version="1.0" encoding="UTF-8"?>
3 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 * Copyright (C) 2006-2008 - INRIA
6 * This file must be used under the terms of the CeCILL.
7 * This source file is licensed as described in the file COPYING, which
8 * you should have received as part of this distribution. The terms
9 * are also available at
10 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
13 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="list">
15 <refname>list</refname>
16 <refpurpose>объект Scilab'а и функция определения списка</refpurpose>
19 <title>Последовательность вызова</title>
20 <synopsis>list(a1, ..., an)</synopsis>
23 <title>Описание</title>
25 Создаёт список <literal>list</literal> с элементами
26 <varname>ai</varname>, которые являются произвольными объектами Scilab'а (<literal>matrix</literal>,
27 <literal>list</literal>,...). Тип объекта <literal>list</literal> равен 15. <code>list()</code>
28 создаёт пустой список (0 элементов).
32 <title>Операции со списками</title>
35 <term>выделение</term>
38 <literal>[x,y,z,...]=L(v)</literal>, где <literal>v</literal> - вектор индексов;
39 <literal>[x,y,z,...]=L(:)</literal> выделяет все элементы.
44 <term>вставка на место индекса i</term>
47 <code>L(i)=a</code> (заметьте, что это не ошибка использовать <code>L(i)=a</code> с
48 <code><![CDATA[i > 1 + size(L)]]></code>, но
49 некоторые элементы списка тогда не определены, и их
50 выделение вызовет ошибку).
55 <term>добавление элемента в хвост</term>
58 <code>L($+1)=e</code>.
63 <term>добавление элемента в начало</term>
68 После этой операции <literal>e</literal> имеет индекс 1, исходные элементы будут сдвинуты вправо.
77 <code>L(i)=null()</code> удаляет <literal>i</literal>-тый элемент списка <literal>L</literal>.
82 <term>конкатенация двух списков</term>
85 <code>L3 = lstcat(L1,L2)</code>.
90 <term>число элементов списка</term>
93 вы можете использовать либо <code>nb_elm = size(L)</code>, либо <code>nb_elm = length(L)</code>.
98 <term>итерации со списками</term>
101 можно использовать список <literal>L</literal> в цикле <link linkend="for">for</link>:
102 <literal>for e=L,...,end</literal> - цикл с числом
103 итераций <literal>length(L)</literal>, переменная
104 цикла <literal>e</literal> будет равна <literal>L(i)</literal>
105 на <literal>i</literal>-той итерации.
112 <title>Примечания</title>
114 Scilab предлагает также другие виды списков, тип <link linkend="tlist">tlist</link> (типизированный список)
115 и тип <link linkend="mlist">mlist</link> (матричноориентированный список), которые полезны для определения нового типа данных с механизмом
116 <link linkend="overloading">перегрузки</link> операторов (<link linkend="hypermatrices">гиперматрицы</link>, которые являются многомерными массивами, в Scilab'е на самом деле имеют тип <emphasis>mlist</emphasis>).
119 Также доступны структуры <emphasis>struct</emphasis> Matlab'а.
123 <title>Примеры</title>
124 <programlisting role="example"><![CDATA[
125 l = list(1,["a" "b"])
131 lbis = list("gewurtz", "caipirina" ,"debug")
132 lter = lstcat(l,lbis)
133 size(lter) - size(lbis) - size(l) // должен быть ноль
136 <refsection role="see also">
137 <title>Смотрите также</title>
138 <simplelist type="inline">
140 <link linkend="null">null</link>
143 <link linkend="lstcat">lstcat</link>
146 <link linkend="tlist">tlist</link>
149 <link linkend="mlist">mlist</link>
152 <link linkend="insertion">вставка</link>
155 <link linkend="extraction">выделение</link>
158 <link linkend="size">size</link>
161 <link linkend="length">length</link>