Print a warning when translating subscripted functions
[maxima.git] / doc / info / ru / Lists.texi
blob79765bd15b8238a347ba14eaa481283167579f90
1 @c Language=Russian
2 @c Encoding=UTF-8
3 @c File=Lists.texi 
4 @c OriginalRevision=1.34
5 @c TranslatedBy: (c) 2007-06 Vadim V. Zhytnikov <vvzhyt@gmail.com>
7 @menu
8 * Ведение в работу со списками::
9 * Функции и переменные для работы со списками::
10 @end menu
12 @node Ведение в работу со списками, Функции и переменные для работы со списками, Списки, Списки
13 @section Ведение в работу со списками
15 Списки являются основными строительными блоками в Maxima и Lisp.   Все типы данных,
16 за исключением массивов, хеш-таблиц и чисел, представлены, как Lisp списки.
17 Эти списки имеют вид
19 @example
20 ((MPLUS) $A 2)
21 @end example
23 @noindent
24 для обозначения @code{a+2}.  На уровне Maxima мы увидим в инфиксной нотации @code{a+2}.   
25 Maxima тоже имеет свои собственные списки, которые печатаются как
27 @example
28 [1, 2, 7, x+y]
29 @end example
31 @noindent
32 для списка из 4 элементов.  Внутренне, это выражение соответствует Lisp списку
34 @example
35 ((MLIST) 1  2  7  ((MPLUS)  $X $Y ))
36 @end example
38 @noindent
39 Флаг, который обозначает тип выражения Maxima, сам является списком, и после 
40 упрощения, данный список приобретет вид
42 @example
43 ((MLIST SIMP) 1 2 7 ((MPLUS SIMP) $X $Y))
44 @end example
46 @node Функции и переменные для работы со списками,  , Ведение в работу со списками, Списки
47 @section Функции и переменные для работы со списками
49 @c NEED ANOTHER deffn FOR GENERAL EXPRESSIONS ARGUMENTS
50 @c NEEDS CLARIFICATION AND EXAMPLES
51 @deffn {Функция} append (@var{list_1}, ..., @var{list_n})
52 Возвращает новый список элементов @var{list_1} с последующими элементами @var{list_2} и т.д.  
53 @code{append} работает и с выражениями общего вида, например, @code{append (f(a,b), f(c,d,e));} дает
54 @code{f(a,b,c,d,e)}.
56 См. @code{example(append);} для примера.
58 @opencatbox{Категории:}
59 @category{Списки}
60 @category{Выражения}
61 @closecatbox
62 @end deffn
64 @c NEEDS CLARIFICATION AND EXAMPLES
65 @deffn {Функция} assoc (@var{key}, @var{list}, @var{default})
66 @deffnx {Функция} assoc (@var{key}, @var{list})
67 Эта функция ищет ключ @var{key} в правых частях списка @var{list},
68 имеющего форму @code{[x,y,z,...]}, где каждый элемент @var{list} есть выражение с бинарным
69 оператором и двумя операндами.  Например, @code{x=1}, @code{2^3}, @code{[a,b]} и т.д.
70 Ключ @var{key} сравнивается с первым операндом.  
71 Если ключ @code{key} найден, то @code{assoc} возвращает второй операнд.
72 В противном случае возвращается значение @var{default}.  Параметр @var{default} не
73 обязателен и по умолчанию равен @code{false}.
75 @opencatbox{Категории:}
76 @category{Списки}
77 @category{Выражения}
78 @closecatbox
79 @end deffn
81 @c REPHRASE
82 @c SPLIT OFF EXAMPLES INTO EXAMPLE SECTION
83 @deffn {Функция} atom (@var{expr})
84 Возвращает @code{true} если @var{expr} является атомарным (т.е. число, имя или строка) и @code{false}
85 в противном случае.  Т.е. @code{atom(5)} равно @code{true}, тогда как @code{atom(a[1])} и @code{atom(sin(x))} 
86 равны @code{false} (предполагая, что @code{a[1]} и @code{x} не имеют значения).
88 @opencatbox{Категории:}
89 @category{Функции предикаты}
90 @category{Выражения}
91 @closecatbox
92 @end deffn
94 @c NEED ANOTHER deffn FOR GENERAL EXPRESSIONS ARGUMENTS
95 @c SPLIT OFF EXAMPLES INTO EXAMPLE SECTION
96 @deffn {Функция} cons (@var{expr}, @var{list})
97 Возвращает новый список, составленный из первого элемента равного @var{expr} с последующими
98 элементами @var{list}.  Функция @code{cons} работает и с произвольными выражениями,
99 например, @code{cons(x, f(a,b,c));}  ->  @code{f(x,a,b,c)}.
101 @opencatbox{Категории:}
102 @category{Списки}
103 @category{Выражения}
104 @closecatbox
105 @end deffn
107 @deffn {Функция} copylist (@var{list})
108 Возвращает копию списка @var{list}.
110 @opencatbox{Категории:}
111 @category{Списки}
112 @closecatbox
113 @end deffn
115 @deffn {Функция} create_list (@var{form}, @var{x_1}, @var{list_1}, ..., @var{x_n}, @var{list_n})
117 Создает список, вычисляя выражение @var{form} с @var{x_1} последовательно равным элементам
118 @var{list_1}, @var{x_2} последовательно равным элементам @var{list_2} и т.д.
119 Общее число элементов в результирующем списке равно произведению числа
120 элементов во всех списках.
121 Каждая переменная @var{x_i} должна быть символом.  Переменные не вычисляются.
122 Списки вычисляются однажды в начале итерации.
124 @example
125 (%i1) create_list(x^i,i,[1,3,7]);
126                  3   7
127 (%o1)       [x, x , x ]
128 @end example
130 @noindent
131 Двойная итерация:
133 @example
134 (%i1) create_list([i,j],i,[a,b],j,[e,f,h]);
135 (%o1) [[a, e], [a, f], [a, h], [b, e], [b, f], [b, h]]
136 @end example
138 Вместо списка @var{list_i} можно использовать два параметра, которые 
139 должны иметь числовые значения.  Они будут рассматриваться как нижняя и верхняя
140 границы итерации (включительно).
142 @example
143 (%i1) create_list([i,j],i,[1,2,3],j,1,i);
144 (%o1) [[1, 1], [2, 1], [2, 2], [3, 1], [3, 2], [3, 3]]
145 @end example
147 Отметим, что пределы для переменной @code{j} могут зависеть от @code{i}.
149 @opencatbox{Категории:}
150 @category{Списки}
151 @closecatbox
152 @end deffn
154 @deffn {Функция} delete (@var{expr_1}, @var{expr_2})
155 @deffnx {Функция} delete (@var{expr_1}, @var{expr_2}, @var{n})
156 Удаляет все элементы, равные @var{expr_1}, из @var{expr_2}.  При этом @var{expr_1}
157 может быть слагаемым @var{expr_2} (если это сумма) или множителем @var{expr_2}
158 (если это произведение).
160 @c ===beg===
161 @c delete(sin(x), x+sin(x)+y);
162 @c ===end===
163 @example
164 (%i1) delete(sin(x), x+sin(x)+y);
165 (%o1)                         y + x
167 @end example
169 Вызов @code{delete(@var{expr_1}, @var{expr_2}, @var{n})} удаляет первые @var{n} случаев
170 @var{expr_1} из @var{expr_2}.  Если число включений @var{expr_1} в @var{expr_2} меньше @var{n},
171 то будут удалены все.
173 @c ===beg===
174 @c delete(a, f(a,b,c,d,a));
175 @c delete(a, f(a,b,a,c,d,a), 2);
176 @c ===end===
177 @example
178 (%i1) delete(a, f(a,b,c,d,a));
179 (%o1)                      f(b, c, d)
180 (%i2) delete(a, f(a,b,a,c,d,a), 2);
181 (%o2)                     f(b, c, d, a)
183 @end example
185 @opencatbox{Категории:}
186 @category{Списки}
187 @category{Выражения}
188 @closecatbox
189 @end deffn
191 @deffn {Функция} eighth (@var{expr})
192 Возвращает восьмой элемент выражения или списка @var{expr}.
193 См. @code{first} по поводу подробностей.
195 @opencatbox{Категории:}
196 @category{Списки}
197 @category{Выражения}
198 @closecatbox
199 @end deffn
201 @c NEED ANOTHER deffn FOR GENERAL EXPRESSIONS ARGUMENTS
202 @c SPLIT OFF EXAMPLES INTO EXAMPLE SECTION
203 @deffn {Функция} endcons (@var{expr}, @var{list})
204 Возвращает новый список, состоящий из элементов @code{list} с последующим @var{expr}.  
205 Функция @code{endcons} работает и с общими выражениями, например,
206 @code{endcons(x, f(a,b,c));}  ->  @code{f(a,b,c,x)}.
208 @opencatbox{Категории:}
209 @category{Списки}
210 @category{Выражения}
211 @closecatbox
212 @end deffn
214 @deffn {Функция} fifth (@var{expr})
215 Возвращает пятый элемент выражения или списка @var{expr}.
216 См. @code{first} по поводу подробностей.
218 @opencatbox{Категории:}
219 @category{Списки}
220 @category{Выражения}
221 @closecatbox
222 @end deffn
224 @c NEEDS CLARIFICATION AND EXAMPLES
225 @deffn {Функция} first (@var{expr})
226 Возвращает первый элемент @var{expr}, что может быть первым элементом списка, 
227 первой строкой в матрице, первым слагаемым суммы и т.д.
228 Заметим, что @code{first} и другие подобные функции, такие как @code{rest} и @code{last}, 
229 работают с внешней (печатной) формой выражения @var{expr}, 
230 а не с тем, как это выражение было введено.  
231 Если значение @code{inflag} равно @code{true}, то эти функции будут 
232 работать с внутренним представлением выражения @var{expr}.  Отметим, что упрощатель
233 изменяет порядок членов в выражениях.  Так, @code{first(x+y)} будет равно @code{x}, если @code{inflag}
234 равна @code{true}, и @code{y}, если @code{inflag} равна @code{false} (@code{first(y+x)} даст одинаковый
235 результат в обоих случаях).  Функции @code{second} .. @code{tenth} дают со второго по десятый
236 элемент выражения.
238 @opencatbox{Категории:}
239 @category{Списки}
240 @category{Выражения}
241 @closecatbox
242 @end deffn
244 @deffn {Функция} fourth (@var{expr})
245 Возвращает четвертый элемент выражения или списка @var{expr}.
246 См. @code{first} по поводу подробностей.
248 @opencatbox{Категории:}
249 @category{Списки}
250 @category{Выражения}
251 @closecatbox
252 @end deffn
254 @deffn {Функция} get (@var{a}, @var{i})
255 Возвращает определенное пользователем свойство атома @var{a}, обозначенное @var{i}, или 
256 @code{false}, если атом не имеет свойства @var{i}.
258 Функция @code{get} вычисляет свои аргументы.
260 @c ===beg===
261 @c put (%e, 'transcendental, 'type);
262 @c put (%pi, 'transcendental, 'type)$
263 @c put (%i, 'algebraic, 'type)$
264 @c typeof (expr) := block ([q],
265 @c         if numberp (expr)
266 @c         then return ('algebraic),
267 @c         if not atom (expr)
268 @c         then return (maplist ('typeof, expr)),
269 @c         q: get (expr, 'type),
270 @c         if q=false
271 @c         then errcatch (error(expr,"is not numeric.")) else q)$
272 @c typeof (2*%e + x*%pi);
273 @c typeof (2*%e + %pi);
274 @c ===end===
275 @example
276 (%i1) put (%e, 'transcendental, 'type);
277 (%o1)                    transcendental
278 (%i2) put (%pi, 'transcendental, 'type)$
279 (%i3) put (%i, 'algebraic, 'type)$
280 (%i4) typeof (expr) := block ([q],
281         if numberp (expr)
282         then return ('algebraic),
283         if not atom (expr)
284         then return (maplist ('typeof, expr)),
285         q: get (expr, 'type),
286         if q=false
287         then errcatch (error(expr,"is not numeric.")) else q)$
288 (%i5) typeof (2*%e + x*%pi);
289 x is not numeric.
290 (%o5)  [[transcendental, []], [algebraic, transcendental]]
291 (%i6) typeof (2*%e + %pi);
292 (%o6)     [transcendental, [algebraic, transcendental]]
294 @end example
296 @opencatbox{Категории:}
297 @category{Факты и выводы}
298 @closecatbox
299 @end deffn
301 @deffn {Функция} join (@var{l}, @var{m})
302 Возвращает новый список, состоящий из чередующихся элементов списков @var{l} и @var{m}.
303 Результат будет иметь вид @code{[@var{l}[1], @var{m}[1], @var{l}[2], @var{m}[2], ...]}.
304 Списки @var{l} и @var{m} могут иметь элементы любого типа.
306 Если списки имеют разную длину, то @code{join} отбросит последние элементы более длинного списка.
308 Ситуация, когда либо @var{l}, либо @var{m} не является списком, считается ошибкой.
310 Примеры:
312 @c ===beg===
313 @c L1: [a, sin(b), c!, d - 1];
314 @c join (L1, [1, 2, 3, 4]);
315 @c join (L1, [aa, bb, cc, dd, ee, ff]);
316 @c ===end===
317 @example
318 (%i1) L1: [a, sin(b), c!, d - 1];
319 (%o1)                [a, sin(b), c!, d - 1]
320 (%i2) join (L1, [1, 2, 3, 4]);
321 (%o2)          [a, 1, sin(b), 2, c!, 3, d - 1, 4]
322 (%i3) join (L1, [aa, bb, cc, dd, ee, ff]);
323 (%o3)        [a, aa, sin(b), bb, c!, cc, d - 1, dd]
324 @end example
326 @opencatbox{Категории:}
327 @category{Списки}
328 @closecatbox
329 @end deffn
331 @c NEEDS EXAMPLES
332 @c HOW IS "LAST" PART DETERMINED ??
333 @deffn {Функция} last (@var{expr})
334 Возвращает последний элемент @var{expr} (элемент, слагаемое, множитель, строку и т.п.).
336 @opencatbox{Категории:}
337 @category{Списки}
338 @category{Выражения}
339 @closecatbox
340 @end deffn
342 @c NEEDS CLARIFICATION AND EXAMPLES
343 @deffn {Функция} length (@var{expr})
344 По умолчанию возвращает число частей внешней (печатной) формы выражения @var{expr}.  
345 Для списка -- это число элементов, для матрицы -- число строк, для суммы -- число
346 слагаемых (см. @code{dispform}).
348 Результат @code{length} зависит от переключателя @code{inflag}.  
349 Например, @code{length(a/(b*c));} дает 2, если @code{inflag} равен @code{false} 
350 (предполагается, что @code{exptdispflag} равна @code{true}), и дает 3, если @code{inflag} 
351 равен @code{true}, т.к. внутренние представление есть @code{a*b^-1*c^-1}.
353 @opencatbox{Категории:}
354 @category{Списки}
355 @category{Выражения}
356 @closecatbox
357 @end deffn
359 @defvr {Управляющая переменная} listarith
360 Значение по умолчанию: @code{true}
361 Если равна @code{false}, то все арифметические операции со списками не работают.
362 Если равна @code{true}, то все операции список-матрица вызывают преобразование списков
363 в матрицы и дают результат матричного типа.  Однако, операции список-список
364 продолжают давать списки.
366 @opencatbox{Категории:}
367 @category{Списки}
368 @category{Глобальные флаги}
369 @closecatbox
370 @end defvr
372 @deffn {Функция} listp (@var{expr})
373 Возвращает @code{true}, если @var{expr} является списком и @code{false} в противном случае.
375 @opencatbox{Категории:}
376 @category{Списки}
377 @category{Функции предикаты}
378 @closecatbox
379 @end deffn
381 @deffn {Функция} makelist (@var{expr}, @var{i}, @var{i_0}, @var{i_1})
382 @deffnx {Функция} makelist (@var{expr}, @var{x}, @var{list})
383 Создает и возвращает список, каждый элемент которого
384 построен из выражения @var{expr}.
386 Вызов @code{makelist (@var{expr}, @var{i}, @var{i_0}, @var{i_1})} возвращает список,
387 с @code{j}-м элементом равным @code{ev (@var{expr}, @var{i}=j)} для
388 @code{j}, пробегающего значения от @var{i_0} до @var{i_1}.
390 Вызов @code{makelist (@var{expr}, @var{x}, @var{list})} возвращает список,
391 с @code{j}-м элементом равным @code{ev (@var{expr}, @var{x}=@var{list}[j])}
392 для @code{j}, пробегающего значения от 1 до @code{length (@var{list})}.
394 Примеры:
396 @c ===beg===
397 @c makelist(concat(x,i),i,1,6);
398 @c makelist(x=y,y,[a,b,c]);
399 @c ===end===
400 @example
401 (%i1) makelist(concat(x,i),i,1,6);
402 (%o1)               [x1, x2, x3, x4, x5, x6]
403 (%i2) makelist(x=y,y,[a,b,c]);
404 (%o2)                 [x = a, x = b, x = c]
406 @end example
408 @opencatbox{Категории:}
409 @category{Списки}
410 @closecatbox
411 @end deffn
413 @deffn {Функция} member (@var{expr_1}, @var{expr_2})
415 Возвращает @code{true} если @code{is(@var{expr_1} = @var{a})},
416 для некоторого элемента @var{a} из @code{args(@var{expr_2})},
417 и @code{false} в противном случае.
419 Обычно, @code{expr_2} является списком.
420 В этом случае @code{args(@var{expr_2}) = @var{expr_2}}
421 и @code{is(@var{expr_1} = @var{a})} для некоторого элемента @var{a} из @code{expr_2}.
423 Функция @code{member} не анализирует составные части аргументов @code{expr_2},
424 и может возвратить @code{false} даже если @code{expr_1} является частью какого-либо из
425 аргументов @code{expr_2}.
427 См. также @code{elementp}.
429 Примеры:
431 @c ===beg===
432 @c member (8, [8, 8.0, 8b0]);
433 @c member (8, [8.0, 8b0]);
434 @c member (b, [a, b, c]);
435 @c member (b, [[a, b], [b, c]]);
436 @c member ([b, c], [[a, b], [b, c]]);
437 @c F (1, 1/2, 1/4, 1/8);
438 @c member (1/8, %);
439 @c member ("ab", ["aa", "ab", sin(1), a + b]);
440 @c ===end===
441 @example
442 (%i1) member (8, [8, 8.0, 8b0]);
443 (%o1)                         true
444 (%i2) member (8, [8.0, 8b0]);
445 (%o2)                         false
446 (%i3) member (b, [a, b, c]);
447 (%o3)                         true
448 (%i4) member (b, [[a, b], [b, c]]);
449 (%o4)                         false
450 (%i5) member ([b, c], [[a, b], [b, c]]);
451 (%o5)                         true
452 (%i6) F (1, 1/2, 1/4, 1/8);
453                                1  1  1
454 (%o6)                     F(1, -, -, -)
455                                2  4  8
456 (%i7) member (1/8, %);
457 (%o7)                         true
458 (%i8) member ("ab", ["aa", "ab", sin(1), a + b]);
459 (%o8)                         true
460 @end example
462 @opencatbox{Категории:}
463 @category{Списки}
464 @category{Выражения}
465 @category{Функции предикаты}
466 @closecatbox
467 @end deffn
469 @deffn {Функция} ninth (@var{expr})
470 Возвращает девятый элемент выражения или списка @var{expr}.
471 См. @code{first} по поводу подробностей.
473 @opencatbox{Категории:}
474 @category{Списки}
475 @category{Выражения}
476 @closecatbox
477 @end deffn
480 @deffn {Функция} unique (@var{L})
482 Возвращает уникальные элементы списка @var{L}.
484 Если все элементы списка @var{L} уникальны, то
485 @code{unique} возвращает копию верхнего уровня
486 списка @var{L}, а не сам список @var{L}.
488 Если @var{L} не является списком, то @code{unique} возвращает @var{L}.
490 Пример:
492 @c ===beg===
493 @c unique ([1, %pi, a + b, 2, 1, %e, %pi, a + b, [1]]);
494 @c ===end===
495 @example
496 (%i1) unique ([1, %pi, a + b, 2, 1, %e, %pi, a + b, [1]]);
497 (%o1)              [1, 2, %e, %pi, [1], b + a]
498 @end example
500 @opencatbox{Категории:}
501 @category{Списки}
502 @category{Выражения}
503 @closecatbox
504 @end deffn
506 @c NEEDS EXAMPLES
507 @deffn {Функция} rest (@var{expr}, @var{n})
508 @deffnx {Функция} rest (@var{expr})
509 Возвращает @var{expr} без первых @var{n} элементов, если @var{n} положительно,
510 или без последних @code{- @var{n}} элементов, если @var{n} отрицательно.  
511 Если @var{n} равен 1, то он может быть опущен.  
512 Выражение @var{expr} может быть списком, матрицей или выражением.
514 @opencatbox{Категории:}
515 @category{Списки}
516 @category{Выражения}
517 @closecatbox
518 @end deffn
520 @c NEED ANOTHER deffn FOR GENERAL EXPRESSIONS ARGUMENTS
521 @c SPLIT OFF EXAMPLES INTO EXAMPLE SECTION
522 @deffn {Функция} reverse (@var{list})
523 Изменяет порядок членов @var{list} (но не сами члены) на обратный.  
524 Функция @code{reverse} также работает с выражениями общего вида,
525 например,  @code{reverse(a=b);} дает @code{b=a}.
527 @opencatbox{Категории:}
528 @category{Списки}
529 @category{Выражения}
530 @closecatbox
531 @end deffn
533 @deffn {Функция} second (@var{expr})
534 Возвращает второй элемент выражения или списка @var{expr}.
535 См. @code{first} по поводу подробностей.
537 @opencatbox{Категории:}
538 @category{Списки}
539 @category{Выражения}
540 @closecatbox
541 @end deffn
543 @deffn {Функция} seventh (@var{expr})
544 Возвращает седьмой элемент выражения или списка @var{expr}.
545 См. @code{first} по поводу подробностей.
547 @opencatbox{Категории:}
548 @category{Списки}
549 @category{Выражения}
550 @closecatbox
551 @end deffn
553 @deffn {Функция} sixth (@var{expr})
554 Возвращает шестой элемент выражения или списка @var{expr}.
555 См. @code{first} по поводу подробностей.
557 @opencatbox{Категории:}
558 @category{Списки}
559 @category{Выражения}
560 @closecatbox
561 @end deffn
563 @deffn {Функция} sublist_indices (@var{L}, @var{P})
565 Возвращает список индексов элементов @code{x} списка @var{L}, для которых
566 предикат @code{maybe(@var{P}(x))} возвращает @code{true},
567 за исключением элементов @code{unknown} и @code{false}.
568 Параметр @var{P} может быть именем функции или лямбда-выражением.
569 Параметр @var{L} должен быть списком.
571 Примеры:
573 @c ===beg===
574 @c sublist_indices ('[a, b, b, c, 1, 2, b, 3, b], 
575 @c                        lambda ([x], x='b));
576 @c sublist_indices ('[a, b, b, c, 1, 2, b, 3, b], symbolp);
577 @c sublist_indices ([1 > 0, 1 < 0, 2 < 1, 2 > 1, 2 > 0], 
578 @c                        identity);
579 @c assume (x < -1);
580 @c map (maybe, [x > 0, x < 0, x < -2]);
581 @c sublist_indices ([x > 0, x < 0, x < -2], identity);
582 @c ===end===
584 @example
585 (%i1) sublist_indices ('[a, b, b, c, 1, 2, b, 3, b],
586                        lambda ([x], x='b));
587 (%o1)                     [2, 3, 7, 9]
588 (%i2) sublist_indices ('[a, b, b, c, 1, 2, b, 3, b], symbolp);
589 (%o2)                  [1, 2, 3, 4, 7, 9]
590 (%i3) sublist_indices ([1 > 0, 1 < 0, 2 < 1, 2 > 1, 2 > 0],
591                        identity);
592 (%o3)                       [1, 4, 5]
593 (%i4) assume (x < -1);
594 (%o4)                       [x < - 1]
595 (%i5) map (maybe, [x > 0, x < 0, x < -2]);
596 (%o5)                [false, true, unknown]
597 (%i6) sublist_indices ([x > 0, x < 0, x < -2], identity);
598 (%o6)                          [2]
599 @end example
601 @opencatbox{Категории:}
602 @category{Списки}
603 @closecatbox
604 @end deffn
606 @deffn {Функция} tenth (@var{expr})
607 Возвращает десятый элемент выражения или списка @var{expr}.
608 См. @code{first} по поводу подробностей.
610 @opencatbox{Категории:}
611 @category{Списки}
612 @category{Выражения}
613 @closecatbox
614 @end deffn
616 @deffn {Функция} third (@var{expr})
617 Возвращает третий элемент выражения или списка @var{expr}.
618 См. @code{first} по поводу подробностей.
620 @opencatbox{Категории:}
621 @category{Списки}
622 @category{Выражения}
623 @closecatbox
624 @end deffn