Add symbol checks to translators for MCALL, MARRAYREF, and MARRAYSET
[maxima.git] / doc / info / ru / Lists.texi
blob2e1090ae2ca5d7040d2b28c12c55f5183e50a4e8
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 @anchor{append}
52 @deffn {Функция} append (@var{list_1}, ..., @var{list_n})
53 Возвращает новый список элементов @var{list_1} с последующими элементами @var{list_2} и т.д.  
54 @code{append} работает и с выражениями общего вида, например, @code{append (f(a,b), f(c,d,e));} дает
55 @code{f(a,b,c,d,e)}.
57 См. @code{example(append);} для примера.
59 @opencatbox{Категории:}
60 @category{Списки}
61 @category{Выражения}
62 @closecatbox
63 @end deffn
65 @c NEEDS CLARIFICATION AND EXAMPLES
66 @deffn {Функция} assoc (@var{key}, @var{list}, @var{default})
67 @deffnx {Функция} assoc (@var{key}, @var{list})
68 Эта функция ищет ключ @var{key} в правых частях списка @var{list},
69 имеющего форму @code{[x,y,z,...]}, где каждый элемент @var{list} есть выражение с бинарным
70 оператором и двумя операндами.  Например, @code{x=1}, @code{2^3}, @code{[a,b]} и т.д.
71 Ключ @var{key} сравнивается с первым операндом.  
72 Если ключ @code{key} найден, то @code{assoc} возвращает второй операнд.
73 В противном случае возвращается значение @var{default}.  Параметр @var{default} не
74 обязателен и по умолчанию равен @code{false}.
76 @opencatbox{Категории:}
77 @category{Списки}
78 @category{Выражения}
79 @closecatbox
80 @end deffn
82 @c REPHRASE
83 @c SPLIT OFF EXAMPLES INTO EXAMPLE SECTION
84 @deffn {Функция} atom (@var{expr})
85 Возвращает @code{true} если @var{expr} является атомарным (т.е. число, имя или строка) и @code{false}
86 в противном случае.  Т.е. @code{atom(5)} равно @code{true}, тогда как @code{atom(a[1])} и @code{atom(sin(x))} 
87 равны @code{false} (предполагая, что @code{a[1]} и @code{x} не имеют значения).
89 @opencatbox{Категории:}
90 @category{Функции предикаты}
91 @category{Выражения}
92 @closecatbox
93 @end deffn
95 @c NEED ANOTHER deffn FOR GENERAL EXPRESSIONS ARGUMENTS
96 @c SPLIT OFF EXAMPLES INTO EXAMPLE SECTION
97 @deffn {Функция} cons (@var{expr}, @var{list})
98 Возвращает новый список, составленный из первого элемента равного @var{expr} с последующими
99 элементами @var{list}.  Функция @code{cons} работает и с произвольными выражениями,
100 например, @code{cons(x, f(a,b,c));}  ->  @code{f(x,a,b,c)}.
102 @opencatbox{Категории:}
103 @category{Списки}
104 @category{Выражения}
105 @closecatbox
106 @end deffn
108 @deffn {Функция} copylist (@var{list})
109 Возвращает копию списка @var{list}.
111 @opencatbox{Категории:}
112 @category{Списки}
113 @closecatbox
114 @end deffn
116 @deffn {Функция} create_list (@var{form}, @var{x_1}, @var{list_1}, ..., @var{x_n}, @var{list_n})
118 Создает список, вычисляя выражение @var{form} с @var{x_1} последовательно равным элементам
119 @var{list_1}, @var{x_2} последовательно равным элементам @var{list_2} и т.д.
120 Общее число элементов в результирующем списке равно произведению числа
121 элементов во всех списках.
122 Каждая переменная @var{x_i} должна быть символом.  Переменные не вычисляются.
123 Списки вычисляются однажды в начале итерации.
125 @example
126 (%i1) create_list(x^i,i,[1,3,7]);
127                  3   7
128 (%o1)       [x, x , x ]
129 @end example
131 @noindent
132 Двойная итерация:
134 @example
135 (%i1) create_list([i,j],i,[a,b],j,[e,f,h]);
136 (%o1) [[a, e], [a, f], [a, h], [b, e], [b, f], [b, h]]
137 @end example
139 Вместо списка @var{list_i} можно использовать два параметра, которые 
140 должны иметь числовые значения.  Они будут рассматриваться как нижняя и верхняя
141 границы итерации (включительно).
143 @example
144 (%i1) create_list([i,j],i,[1,2,3],j,1,i);
145 (%o1) [[1, 1], [2, 1], [2, 2], [3, 1], [3, 2], [3, 3]]
146 @end example
148 Отметим, что пределы для переменной @code{j} могут зависеть от @code{i}.
150 @opencatbox{Категории:}
151 @category{Списки}
152 @closecatbox
153 @end deffn
155 @deffn {Функция} delete (@var{expr_1}, @var{expr_2})
156 @deffnx {Функция} delete (@var{expr_1}, @var{expr_2}, @var{n})
157 Удаляет все элементы, равные @var{expr_1}, из @var{expr_2}.  При этом @var{expr_1}
158 может быть слагаемым @var{expr_2} (если это сумма) или множителем @var{expr_2}
159 (если это произведение).
161 @c ===beg===
162 @c delete(sin(x), x+sin(x)+y);
163 @c ===end===
164 @example
165 (%i1) delete(sin(x), x+sin(x)+y);
166 (%o1)                         y + x
168 @end example
170 Вызов @code{delete(@var{expr_1}, @var{expr_2}, @var{n})} удаляет первые @var{n} случаев
171 @var{expr_1} из @var{expr_2}.  Если число включений @var{expr_1} в @var{expr_2} меньше @var{n},
172 то будут удалены все.
174 @c ===beg===
175 @c delete(a, f(a,b,c,d,a));
176 @c delete(a, f(a,b,a,c,d,a), 2);
177 @c ===end===
178 @example
179 (%i1) delete(a, f(a,b,c,d,a));
180 (%o1)                      f(b, c, d)
181 (%i2) delete(a, f(a,b,a,c,d,a), 2);
182 (%o2)                     f(b, c, d, a)
184 @end example
186 @opencatbox{Категории:}
187 @category{Списки}
188 @category{Выражения}
189 @closecatbox
190 @end deffn
192 @deffn {Функция} eighth (@var{expr})
193 Возвращает восьмой элемент выражения или списка @var{expr}.
194 См. @code{first} по поводу подробностей.
196 @opencatbox{Категории:}
197 @category{Списки}
198 @category{Выражения}
199 @closecatbox
200 @end deffn
202 @c NEED ANOTHER deffn FOR GENERAL EXPRESSIONS ARGUMENTS
203 @c SPLIT OFF EXAMPLES INTO EXAMPLE SECTION
204 @deffn {Функция} endcons (@var{expr}, @var{list})
205 Возвращает новый список, состоящий из элементов @code{list} с последующим @var{expr}.  
206 Функция @code{endcons} работает и с общими выражениями, например,
207 @code{endcons(x, f(a,b,c));}  ->  @code{f(a,b,c,x)}.
209 @opencatbox{Категории:}
210 @category{Списки}
211 @category{Выражения}
212 @closecatbox
213 @end deffn
215 @deffn {Функция} fifth (@var{expr})
216 Возвращает пятый элемент выражения или списка @var{expr}.
217 См. @code{first} по поводу подробностей.
219 @opencatbox{Категории:}
220 @category{Списки}
221 @category{Выражения}
222 @closecatbox
223 @end deffn
225 @c NEEDS CLARIFICATION AND EXAMPLES
226 @deffn {Функция} first (@var{expr})
227 Возвращает первый элемент @var{expr}, что может быть первым элементом списка, 
228 первой строкой в матрице, первым слагаемым суммы и т.д.
229 Заметим, что @code{first} и другие подобные функции, такие как @code{rest} и @code{last}, 
230 работают с внешней (печатной) формой выражения @var{expr}, 
231 а не с тем, как это выражение было введено.  
232 Если значение @code{inflag} равно @code{true}, то эти функции будут 
233 работать с внутренним представлением выражения @var{expr}.  Отметим, что упрощатель
234 изменяет порядок членов в выражениях.  Так, @code{first(x+y)} будет равно @code{x}, если @code{inflag}
235 равна @code{true}, и @code{y}, если @code{inflag} равна @code{false} (@code{first(y+x)} даст одинаковый
236 результат в обоих случаях).  Функции @code{second} .. @code{tenth} дают со второго по десятый
237 элемент выражения.
239 @opencatbox{Категории:}
240 @category{Списки}
241 @category{Выражения}
242 @closecatbox
243 @end deffn
245 @deffn {Функция} fourth (@var{expr})
246 Возвращает четвертый элемент выражения или списка @var{expr}.
247 См. @code{first} по поводу подробностей.
249 @opencatbox{Категории:}
250 @category{Списки}
251 @category{Выражения}
252 @closecatbox
253 @end deffn
255 @deffn {Функция} get (@var{a}, @var{i})
256 Возвращает определенное пользователем свойство атома @var{a}, обозначенное @var{i}, или 
257 @code{false}, если атом не имеет свойства @var{i}.
259 Функция @code{get} вычисляет свои аргументы.
261 @c ===beg===
262 @c put (%e, 'transcendental, 'type);
263 @c put (%pi, 'transcendental, 'type)$
264 @c put (%i, 'algebraic, 'type)$
265 @c typeof (expr) := block ([q],
266 @c         if numberp (expr)
267 @c         then return ('algebraic),
268 @c         if not atom (expr)
269 @c         then return (maplist ('typeof, expr)),
270 @c         q: get (expr, 'type),
271 @c         if q=false
272 @c         then errcatch (error(expr,"is not numeric.")) else q)$
273 @c typeof (2*%e + x*%pi);
274 @c typeof (2*%e + %pi);
275 @c ===end===
276 @example
277 (%i1) put (%e, 'transcendental, 'type);
278 (%o1)                    transcendental
279 (%i2) put (%pi, 'transcendental, 'type)$
280 (%i3) put (%i, 'algebraic, 'type)$
281 (%i4) typeof (expr) := block ([q],
282         if numberp (expr)
283         then return ('algebraic),
284         if not atom (expr)
285         then return (maplist ('typeof, expr)),
286         q: get (expr, 'type),
287         if q=false
288         then errcatch (error(expr,"is not numeric.")) else q)$
289 (%i5) typeof (2*%e + x*%pi);
290 x is not numeric.
291 (%o5)  [[transcendental, []], [algebraic, transcendental]]
292 (%i6) typeof (2*%e + %pi);
293 (%o6)     [transcendental, [algebraic, transcendental]]
295 @end example
297 @opencatbox{Категории:}
298 @category{Факты и выводы}
299 @closecatbox
300 @end deffn
302 @deffn {Функция} join (@var{l}, @var{m})
303 Возвращает новый список, состоящий из чередующихся элементов списков @var{l} и @var{m}.
304 Результат будет иметь вид @code{[@var{l}[1], @var{m}[1], @var{l}[2], @var{m}[2], ...]}.
305 Списки @var{l} и @var{m} могут иметь элементы любого типа.
307 Если списки имеют разную длину, то @code{join} отбросит последние элементы более длинного списка.
309 Ситуация, когда либо @var{l}, либо @var{m} не является списком, считается ошибкой.
311 Примеры:
313 @c ===beg===
314 @c L1: [a, sin(b), c!, d - 1];
315 @c join (L1, [1, 2, 3, 4]);
316 @c join (L1, [aa, bb, cc, dd, ee, ff]);
317 @c ===end===
318 @example
319 (%i1) L1: [a, sin(b), c!, d - 1];
320 (%o1)                [a, sin(b), c!, d - 1]
321 (%i2) join (L1, [1, 2, 3, 4]);
322 (%o2)          [a, 1, sin(b), 2, c!, 3, d - 1, 4]
323 (%i3) join (L1, [aa, bb, cc, dd, ee, ff]);
324 (%o3)        [a, aa, sin(b), bb, c!, cc, d - 1, dd]
325 @end example
327 @opencatbox{Категории:}
328 @category{Списки}
329 @closecatbox
330 @end deffn
332 @c NEEDS EXAMPLES
333 @c HOW IS "LAST" PART DETERMINED ??
334 @deffn {Функция} last (@var{expr})
335 Возвращает последний элемент @var{expr} (элемент, слагаемое, множитель, строку и т.п.).
337 @opencatbox{Категории:}
338 @category{Списки}
339 @category{Выражения}
340 @closecatbox
341 @end deffn
343 @c NEEDS CLARIFICATION AND EXAMPLES
344 @deffn {Функция} length (@var{expr})
345 По умолчанию возвращает число частей внешней (печатной) формы выражения @var{expr}.  
346 Для списка -- это число элементов, для матрицы -- число строк, для суммы -- число
347 слагаемых (см. @code{dispform}).
349 Результат @code{length} зависит от переключателя @code{inflag}.  
350 Например, @code{length(a/(b*c));} дает 2, если @code{inflag} равен @code{false} 
351 (предполагается, что @code{exptdispflag} равна @code{true}), и дает 3, если @code{inflag} 
352 равен @code{true}, т.к. внутренние представление есть @code{a*b^-1*c^-1}.
354 @opencatbox{Категории:}
355 @category{Списки}
356 @category{Выражения}
357 @closecatbox
358 @end deffn
360 @anchor{listarith}
361 @defvr {Управляющая переменная} listarith
362 Значение по умолчанию: @code{true}
363 Если равна @code{false}, то все арифметические операции со списками не работают.
364 Если равна @code{true}, то все операции список-матрица вызывают преобразование списков
365 в матрицы и дают результат матричного типа.  Однако, операции список-список
366 продолжают давать списки.
368 @opencatbox{Категории:}
369 @category{Списки}
370 @category{Глобальные флаги}
371 @closecatbox
372 @end defvr
374 @deffn {Функция} listp (@var{expr})
375 Возвращает @code{true}, если @var{expr} является списком и @code{false} в противном случае.
377 @opencatbox{Категории:}
378 @category{Списки}
379 @category{Функции предикаты}
380 @closecatbox
381 @end deffn
383 @deffn {Функция} makelist (@var{expr}, @var{i}, @var{i_0}, @var{i_1})
384 @deffnx {Функция} makelist (@var{expr}, @var{x}, @var{list})
385 Создает и возвращает список, каждый элемент которого
386 построен из выражения @var{expr}.
388 Вызов @code{makelist (@var{expr}, @var{i}, @var{i_0}, @var{i_1})} возвращает список,
389 с @code{j}-м элементом равным @code{ev (@var{expr}, @var{i}=j)} для
390 @code{j}, пробегающего значения от @var{i_0} до @var{i_1}.
392 Вызов @code{makelist (@var{expr}, @var{x}, @var{list})} возвращает список,
393 с @code{j}-м элементом равным @code{ev (@var{expr}, @var{x}=@var{list}[j])}
394 для @code{j}, пробегающего значения от 1 до @code{length (@var{list})}.
396 Примеры:
398 @c ===beg===
399 @c makelist(concat(x,i),i,1,6);
400 @c makelist(x=y,y,[a,b,c]);
401 @c ===end===
402 @example
403 (%i1) makelist(concat(x,i),i,1,6);
404 (%o1)               [x1, x2, x3, x4, x5, x6]
405 (%i2) makelist(x=y,y,[a,b,c]);
406 (%o2)                 [x = a, x = b, x = c]
408 @end example
410 @opencatbox{Категории:}
411 @category{Списки}
412 @closecatbox
413 @end deffn
415 @deffn {Функция} member (@var{expr_1}, @var{expr_2})
417 Возвращает @code{true} если @code{is(@var{expr_1} = @var{a})},
418 для некоторого элемента @var{a} из @code{args(@var{expr_2})},
419 и @code{false} в противном случае.
421 Обычно, @code{expr_2} является списком.
422 В этом случае @code{args(@var{expr_2}) = @var{expr_2}}
423 и @code{is(@var{expr_1} = @var{a})} для некоторого элемента @var{a} из @code{expr_2}.
425 Функция @code{member} не анализирует составные части аргументов @code{expr_2},
426 и может возвратить @code{false} даже если @code{expr_1} является частью какого-либо из
427 аргументов @code{expr_2}.
429 См. также @code{elementp}.
431 Примеры:
433 @c ===beg===
434 @c member (8, [8, 8.0, 8b0]);
435 @c member (8, [8.0, 8b0]);
436 @c member (b, [a, b, c]);
437 @c member (b, [[a, b], [b, c]]);
438 @c member ([b, c], [[a, b], [b, c]]);
439 @c F (1, 1/2, 1/4, 1/8);
440 @c member (1/8, %);
441 @c member ("ab", ["aa", "ab", sin(1), a + b]);
442 @c ===end===
443 @example
444 (%i1) member (8, [8, 8.0, 8b0]);
445 (%o1)                         true
446 (%i2) member (8, [8.0, 8b0]);
447 (%o2)                         false
448 (%i3) member (b, [a, b, c]);
449 (%o3)                         true
450 (%i4) member (b, [[a, b], [b, c]]);
451 (%o4)                         false
452 (%i5) member ([b, c], [[a, b], [b, c]]);
453 (%o5)                         true
454 (%i6) F (1, 1/2, 1/4, 1/8);
455                                1  1  1
456 (%o6)                     F(1, -, -, -)
457                                2  4  8
458 (%i7) member (1/8, %);
459 (%o7)                         true
460 (%i8) member ("ab", ["aa", "ab", sin(1), a + b]);
461 (%o8)                         true
462 @end example
464 @opencatbox{Категории:}
465 @category{Списки}
466 @category{Выражения}
467 @category{Функции предикаты}
468 @closecatbox
469 @end deffn
471 @deffn {Функция} ninth (@var{expr})
472 Возвращает девятый элемент выражения или списка @var{expr}.
473 См. @code{first} по поводу подробностей.
475 @opencatbox{Категории:}
476 @category{Списки}
477 @category{Выражения}
478 @closecatbox
479 @end deffn
482 @deffn {Функция} unique (@var{L})
484 Возвращает уникальные элементы списка @var{L}.
486 Если все элементы списка @var{L} уникальны, то
487 @code{unique} возвращает копию верхнего уровня
488 списка @var{L}, а не сам список @var{L}.
490 Если @var{L} не является списком, то @code{unique} возвращает @var{L}.
492 Пример:
494 @c ===beg===
495 @c unique ([1, %pi, a + b, 2, 1, %e, %pi, a + b, [1]]);
496 @c ===end===
497 @example
498 (%i1) unique ([1, %pi, a + b, 2, 1, %e, %pi, a + b, [1]]);
499 (%o1)              [1, 2, %e, %pi, [1], b + a]
500 @end example
502 @opencatbox{Категории:}
503 @category{Списки}
504 @category{Выражения}
505 @closecatbox
506 @end deffn
508 @c NEEDS EXAMPLES
509 @deffn {Функция} rest (@var{expr}, @var{n})
510 @deffnx {Функция} rest (@var{expr})
511 Возвращает @var{expr} без первых @var{n} элементов, если @var{n} положительно,
512 или без последних @code{- @var{n}} элементов, если @var{n} отрицательно.  
513 Если @var{n} равен 1, то он может быть опущен.  
514 Выражение @var{expr} может быть списком, матрицей или выражением.
516 @opencatbox{Категории:}
517 @category{Списки}
518 @category{Выражения}
519 @closecatbox
520 @end deffn
522 @c NEED ANOTHER deffn FOR GENERAL EXPRESSIONS ARGUMENTS
523 @c SPLIT OFF EXAMPLES INTO EXAMPLE SECTION
524 @anchor{reverse}
525 @deffn {Функция} reverse (@var{list})
526 Изменяет порядок членов @var{list} (но не сами члены) на обратный.  
527 Функция @code{reverse} также работает с выражениями общего вида,
528 например,  @code{reverse(a=b);} дает @code{b=a}.
530 @opencatbox{Категории:}
531 @category{Списки}
532 @category{Выражения}
533 @closecatbox
534 @end deffn
536 @deffn {Функция} second (@var{expr})
537 Возвращает второй элемент выражения или списка @var{expr}.
538 См. @code{first} по поводу подробностей.
540 @opencatbox{Категории:}
541 @category{Списки}
542 @category{Выражения}
543 @closecatbox
544 @end deffn
546 @deffn {Функция} seventh (@var{expr})
547 Возвращает седьмой элемент выражения или списка @var{expr}.
548 См. @code{first} по поводу подробностей.
550 @opencatbox{Категории:}
551 @category{Списки}
552 @category{Выражения}
553 @closecatbox
554 @end deffn
556 @deffn {Функция} sixth (@var{expr})
557 Возвращает шестой элемент выражения или списка @var{expr}.
558 См. @code{first} по поводу подробностей.
560 @opencatbox{Категории:}
561 @category{Списки}
562 @category{Выражения}
563 @closecatbox
564 @end deffn
566 @deffn {Функция} sublist_indices (@var{L}, @var{P})
568 Возвращает список индексов элементов @code{x} списка @var{L}, для которых
569 предикат @code{maybe(@var{P}(x))} возвращает @code{true},
570 за исключением элементов @code{unknown} и @code{false}.
571 Параметр @var{P} может быть именем функции или лямбда-выражением.
572 Параметр @var{L} должен быть списком.
574 Примеры:
576 @c ===beg===
577 @c sublist_indices ('[a, b, b, c, 1, 2, b, 3, b], 
578 @c                        lambda ([x], x='b));
579 @c sublist_indices ('[a, b, b, c, 1, 2, b, 3, b], symbolp);
580 @c sublist_indices ([1 > 0, 1 < 0, 2 < 1, 2 > 1, 2 > 0], 
581 @c                        identity);
582 @c assume (x < -1);
583 @c map (maybe, [x > 0, x < 0, x < -2]);
584 @c sublist_indices ([x > 0, x < 0, x < -2], identity);
585 @c ===end===
587 @example
588 (%i1) sublist_indices ('[a, b, b, c, 1, 2, b, 3, b],
589                        lambda ([x], x='b));
590 (%o1)                     [2, 3, 7, 9]
591 (%i2) sublist_indices ('[a, b, b, c, 1, 2, b, 3, b], symbolp);
592 (%o2)                  [1, 2, 3, 4, 7, 9]
593 (%i3) sublist_indices ([1 > 0, 1 < 0, 2 < 1, 2 > 1, 2 > 0],
594                        identity);
595 (%o3)                       [1, 4, 5]
596 (%i4) assume (x < -1);
597 (%o4)                       [x < - 1]
598 (%i5) map (maybe, [x > 0, x < 0, x < -2]);
599 (%o5)                [false, true, unknown]
600 (%i6) sublist_indices ([x > 0, x < 0, x < -2], identity);
601 (%o6)                          [2]
602 @end example
604 @opencatbox{Категории:}
605 @category{Списки}
606 @closecatbox
607 @end deffn
609 @deffn {Функция} tenth (@var{expr})
610 Возвращает десятый элемент выражения или списка @var{expr}.
611 См. @code{first} по поводу подробностей.
613 @opencatbox{Категории:}
614 @category{Списки}
615 @category{Выражения}
616 @closecatbox
617 @end deffn
619 @deffn {Функция} third (@var{expr})
620 Возвращает третий элемент выражения или списка @var{expr}.
621 См. @code{first} по поводу подробностей.
623 @opencatbox{Категории:}
624 @category{Списки}
625 @category{Выражения}
626 @closecatbox
627 @end deffn