Convert limits from below to limits from above.
[maxima.git] / doc / info / ru / Command.texi
blobfd6567448af2ffc60c7d1c208193f55e64256ce9
1 @c Language=Russian
2 @c Encoding=UTF-8
3 @c File=Command.texi
4 @c OriginalRevision=1.46
5 @c TranslatedBy: (c) 2005-12 Vadim V. Zhytnikov <vvzhyt@gmail.ru>
7 @menu
8 * Введение в командную строку::
9 * Функции и переменные для работы в командной строке::
10 @end menu
12 @node Введение в командную строку, Функции и переменные для работы в командной строке, Командная строка, Командная строка
13 @section Введение в командную строку
15 @c NEEDS EXAMPLES
16 @c THIS ITEM IS VERY IMPORTANT !!
17 @deffn {Оператор} '
18 @ifinfo
19 @fnindex Оператор "одиночная кавычка"
20 @end ifinfo
21 Оператор "одиночная кавычка" @code{'} предотвращает вычисление,
22 иными словами "экранирует" свой аргумент.
24 Примененный к символу, оператор "одиночная кавычка" предотвращает
25 вычисление этого символа.
27 Примененный к вызову функции, оператор "одиночная кавычка"
28 предотвращает вычисление этой функции, но не вычисление
29 ее аргументов (если оно не предотвращено по другим причинам).
30 Результатом является невычисляемая (noun) форма вызова функции.
32 Примененный к выражению в скобках, предотвращает вычисление
33 всех функций и символов внутри скобок.
34 @c DUNNO IF THESE EXAMPLES ARE STILL NEEDED -- COVERED BY ITEMS UNDER "Examples"
35 Например, @code{'(f(x))} означает -- не вычислять выражение
36 @code{f(x)}, тогда как @code{'f(x)} (кавычка примененная к @code{f}
37 а не к @code{f(x)}) означает -- невычисляемая форма @code{f},
38 примененная к @code{[x]}.
40 Одиночная кавычка не предотвращает упрощение.
42 Когда глобальный флаг @code{noundisp} имеет значение @code{true},
43 невычисляемые формы функций выводятся с одиночной кавычкой.
44 Этот переключатель всегда установлен равным @code{true} при
45 печати определений функций.
47 См. также оператор "кавычка-кавычка" @code{''} и @code{nouns}.
49 Примеры:
51 Примененный к символу, оператор "одиночная кавычка" предотвращает
52 вычисление этого символа.
54 @c ===beg===
55 @c aa: 1024;
56 @c aa^2;
57 @c 'aa^2;
58 @c ''%;
59 @c ===end===
60 @example
61 (%i1) aa: 1024;
62 (%o1)                         1024
63 (%i2) aa^2;
64 (%o2)                        1048576
65 (%i3) 'aa^2;
66                                  2
67 (%o3)                          aa
68 (%i4) ''%;
69 (%o4)                        1048576
70 @end example
73 Примененный к вызову функции, оператор "одиночная кавычка"
74 предотвращает вычисление этой функции.
75 Результатом является невычисляемая форма вызова функции.
77 @c ===beg===
78 @c x0: 5;
79 @c x1: 7;
80 @c integrate (x^2, x, x0, x1);
81 @c 'integrate (x^2, x, x0, x1);
82 @c %, nouns;
83 @c ===end===
84 @example
85 (%i1) x0: 5;
86 (%o1)                           5
87 (%i2) x1: 7;
88 (%o2)                           7
89 (%i3) integrate (x^2, x, x0, x1);
90                                218
91 (%o3)                          ---
92                                 3
93 (%i4) 'integrate (x^2, x, x0, x1);
94                              7
95                             /
96                             [   2
97 (%o4)                       I  x  dx
98                             ]
99                             /
100                              5
101 (%i5) %, nouns;
102                                218
103 (%o5)                          ---
104                                 3
105 @end example
107 Примененный к выражению в скобках, предотвращает вычисление
108 всех функций и символов внутри скобок.
110 @c ===beg===
111 @c aa: 1024;
112 @c bb: 19;
113 @c sqrt(aa) + bb;
114 @c '(sqrt(aa) + bb);
115 @c ''%;
116 @c ===end===
117 @example
118 (%i1) aa: 1024;
119 (%o1)                         1024
120 (%i2) bb: 19;
121 (%o2)                          19
122 (%i3) sqrt(aa) + bb;
123 (%o3)                          51
124 (%i4) '(sqrt(aa) + bb);
125 (%o4)                     bb + sqrt(aa)
126 (%i5) ''%;
127 (%o5)                          51
128 @end example
130 Одиночная кавычка не предотвращает упрощение.
132 @c ===beg===
133 @c sin (17 * %pi) + cos (17 * %pi);
134 @c '(sin (17 * %pi) + cos (17 * %pi));
135 @c ===end===
136 @example
137 (%i1) sin (17 * %pi) + cos (17 * %pi);
138 (%o1)                          - 1
139 (%i2) '(sin (17 * %pi) + cos (17 * %pi));
140 (%o2)                          - 1
141 @end example
143 @opencatbox{Категории:}
144 @category{Вычисление}
145 @category{Операторы}
146 @closecatbox
147 @end deffn
149 @deffn {Оператор} ''
150 @ifinfo
151 @fnindex Оператор "кавычка-кавычка"
152 @end ifinfo
153 Оператор "кавычка-кавычка"  @code{'@w{}'} (две одиночные кавычки) изменяет
154 вычисление вводимого выражения.
156 Примененный к выражению общего вида @var{expr}, кавычка-кавычка вызывает подстановку значения @var{expr}
157 вместо @var{expr} в вводимом выражении.
159 Примененный к оператору в выражении,
160 кавычка-кавычка изменяет невычисляемую форму оператора на вычисляемую (если она не является таковой).
162 Оператор кавычка-кавычка применяется при синтаксическом анализе вводимого выражения
163 и не сохраняется как часть этого выражения.
164 Оператор кавычка-кавычка применяется сразу после распознавания и не
165 может быть экранирован.
167 Оператор кавычка-кавычка распознается функциями @code{batch} и @code{load}.
169 См. также оператор "кавычка" @code{'} и @code{nouns}.
171 Примеры:
173 Примененный к выражению общего вида @var{expr}, кавычка-кавычка вызывает подстановку значения @var{expr}
174 вместо @var{expr} в вводимом выражении.
176 @c ===beg===
177 @c expand ((a + b)^3);
178 @c [_, ''_];
179 @c [%i1, ''%i1];
180 @c [aa : cc, bb : dd, cc : 17, dd : 29];
181 @c foo_1 (x) := aa - bb * x;
182 @c foo_1 (10);
183 @c ''%;
184 @c ''(foo_1 (10));
185 @c foo_2 (x) := ''aa - ''bb * x;
186 @c foo_2 (10);
187 @c [x0 : x1, x1 : x2, x2 : x3];
188 @c x0;
189 @c ''x0;
190 @c '' ''x0;
191 @c ===end===
192 @example
193 (%i1) expand ((a + b)^3);
194                      3        2      2      3
195 (%o1)               b  + 3 a b  + 3 a  b + a
196 (%i2) [_, ''_];
197                          3    3        2      2      3
198 (%o2)     [expand((b + a) ), b  + 3 a b  + 3 a  b + a ]
199 (%i3) [%i1, ''%i1];
200                          3    3        2      2      3
201 (%o3)     [expand((b + a) ), b  + 3 a b  + 3 a  b + a ]
202 (%i4) [aa : cc, bb : dd, cc : 17, dd : 29];
203 (%o4)                   [cc, dd, 17, 29]
204 (%i5) foo_1 (x) := aa - bb * x;
205 (%o5)                 foo_1(x) := aa - bb x
206 (%i6) foo_1 (10);
207 (%o6)                      cc - 10 dd
208 (%i7) ''%;
209 (%o7)                         - 273
210 (%i8) ''(foo_1 (10));
211 (%o8)                         - 273
212 (%i9) foo_2 (x) := ''aa - ''bb * x;
213 (%o9)                 foo_2(x) := cc - dd x
214 (%i10) foo_2 (10);
215 (%o10)                        - 273
216 (%i11) [x0 : x1, x1 : x2, x2 : x3];
217 (%o11)                    [x1, x2, x3]
218 (%i12) x0;
219 (%o12)                         x1
220 (%i13) ''x0;
221 (%o13)                         x2
222 (%i14) '' ''x0;
223 (%o14)                         x3
224 @end example
226 Примененный к оператору в выражении,
227 кавычка-кавычка изменяет невычисляемую форму оператора на вычисляемую (если она не является таковой).
229 @c ===beg===
230 @c sin (1);
231 @c ''sin (1);
232 @c declare (foo, noun);
233 @c foo (x) := x - 1729;
234 @c foo (100);
235 @c ''foo (100);
236 @c ===end===
237 @example
238 (%i1) sin (1);
239 (%o1)                        sin(1)
240 (%i2) ''sin (1);
241 (%o2)                    0.8414709848079
242 (%i3) declare (foo, noun);
243 (%o3)                         done
244 (%i4) foo (x) := x - 1729;
245 (%o4)                 ''foo(x) := x - 1729
246 (%i5) foo (100);
247 (%o5)                       foo(100)
248 (%i6) ''foo (100);
249 (%o6)                        - 1629
250 @end example
252 Оператор кавычка-кавычка применяется при синтаксическом анализе вводимого выражения
253 и не сохраняется как часть этого выражения.
255 @c ===beg===
256 @c [aa : bb, cc : dd, bb : 1234, dd : 5678];
257 @c aa + cc;
258 @c display (_, op (_), args (_));
259 @c ''(aa + cc);
260 @c display (_, op (_), args (_));
261 @c ===end===
262 @example
263 (%i1) [aa : bb, cc : dd, bb : 1234, dd : 5678];
264 (%o1)                 [bb, dd, 1234, 5678]
265 (%i2) aa + cc;
266 (%o2)                        dd + bb
267 (%i3) display (_, op (_), args (_));
268                            _ = cc + aa
270                          op(cc + aa) = +
272                     args(cc + aa) = [cc, aa]
274 (%o3)                         done
275 (%i4) ''(aa + cc);
276 (%o4)                         6912
277 (%i5) display (_, op (_), args (_));
278                            _ = dd + bb
280                          op(dd + bb) = +
282                     args(dd + bb) = [dd, bb]
284 (%o5)                         done
285 @end example
287 Оператор кавычка-кавычка вызывает вычисление в случаях когда оно
288 заблокировано, таких как определения функций, лямбда-выражения и выражения,
289 экранированные оператором кавычка @code{'}.
291 @c ===beg===
292 @c foo_1a (x) := ''(integrate (log (x), x));
293 @c foo_1b (x) := integrate (log (x), x);
294 @c dispfun (foo_1a, foo_1b);
295 @c integrate (log (x), x);
296 @c foo_2a (x) := ''%;
297 @c foo_2b (x) := %;
298 @c dispfun (foo_2a, foo_2b);
299 @c F : lambda ([u], diff (sin (u), u));
300 @c G : lambda ([u], ''(diff (sin (u), u)));
301 @c '(sum (a[k], k, 1, 3) + sum (b[k], k, 1, 3));
302 @c '(''(sum (a[k], k, 1, 3)) + ''(sum (b[k], k, 1, 3)));
303 @c ===end===
304 @example
305 (%i1) foo_1a (x) := ''(integrate (log (x), x));
306 (%o1)               foo_1a(x) := x log(x) - x
307 (%i2) foo_1b (x) := integrate (log (x), x);
308 (%o2)           foo_1b(x) := integrate(log(x), x)
309 (%i3) dispfun (foo_1a, foo_1b);
310 (%t3)               foo_1a(x) := x log(x) - x
312 (%t4)           foo_1b(x) := integrate(log(x), x)
314 (%o4)                      [%t3, %t4]
315 (%i4) integrate (log (x), x);
316 (%o4)                     x log(x) - x
317 (%i5) foo_2a (x) := ''%;
318 (%o5)               foo_2a(x) := x log(x) - x
319 (%i6) foo_2b (x) := %;
320 (%o6)                    foo_2b(x) := %
321 (%i7) dispfun (foo_2a, foo_2b);
322 (%t7)               foo_2a(x) := x log(x) - x
324 (%t8)                    foo_2b(x) := %
326 (%o8)                      [%t7, %t8]
327 (%i8) F : lambda ([u], diff (sin (u), u));
328 (%o8)             lambda([u], diff(sin(u), u))
329 (%i9) G : lambda ([u], ''(diff (sin (u), u)));
330 (%o9)                  lambda([u], cos(u))
331 (%i10) '(sum (a[k], k, 1, 3) + sum (b[k], k, 1, 3));
332 (%o10)         sum(b , k, 1, 3) + sum(a , k, 1, 3)
333                     k                  k
334 (%i11) '(''(sum (a[k], k, 1, 3)) + ''(sum (b[k], k, 1, 3)));
335 (%o11)             b  + a  + b  + a  + b  + a
336                     3    3    2    2    1    1
337 @end example
339 @opencatbox{Категории:}
340 @category{Вычисление}
341 @category{Операторы}
342 @closecatbox
343 @end deffn
345 @c end concepts Command Line
346 @node Функции и переменные для работы в командной строке,  , Введение в командную строку, Командная строка
347 @section Функции и переменные для работы в командной строке
349 @c NEEDS WORK, ESPECIALLY EXAMPLES
350 @deffn {Функция} alias (@var{new_name_1}, @var{old_name_1}, ..., @var{new_name_n}, @var{old_name_n})
351 создает альтернативное имя для пользовательской или системной
352 функции, переменной, массива и т.п.
353 Данная функция может иметь любое число парных аргументов.
355 @opencatbox{Категории:}
356 @category{Факты и выводы}
357 @closecatbox
358 @end deffn
360 @defvr {Управляющая переменная} debugmode
361 Значение по умолчанию: @code{false}
363 Если во время работы Maxima возникла ошибка, Maxima запускает отладчик
364 если значение переключателя @code{debugmode} равно @code{true}.
365 В отладчике пользователь может исследовать значения стека, установить
366 точки останова, просматривать код и т.д.  См.  @code{debugging}
367 для списка команд отладчика.
369 Отладчик Maxima, включаемый с помощью @code{debugmode}, не
370 обрабатывает ошибки на уровне Lisp.
371 @c DO WE WANT TO SAY MORE ABOUT DEBUGGING LISP ERRORS ???
372 @c I'M NOT CONVINCED WE WANT TO OPEN THAT CAN OF WORMS !!!
374 @opencatbox{Категории:}
375 @category{Отладка}
376 @category{Глобальные флаги}
377 @closecatbox
378 @end defvr
380 @c NEEDS CLARIFICATION
381 @c VERY IMPORTANT !!
382 @anchor{ev}
383 @deffn {Функция} ev (@var{expr}, @var{arg_1}, ..., @var{arg_n})
384 Вычисляет выражение @var{expr} в окружении определяемом аргументами
385 @var{arg_1}, ..., @var{arg_n}.  Данные аргументы могут быть
386 переключателями (логические флаги), присваиваниями, уравнениями и функциями.
387 @code{ev} возвращает результат вычисления (выражение).
389 Вычисление осуществляется в несколько шагов.
391 @enumerate
392 @item
393 Сначала окружение устанавливается в соответствии с аргументами,
394 которые могут быть одним из следующего:
396 @itemize @bullet
397 @item
398 @code{simp} вызывает упрощение выражения @var{expr} вне зависимости
399 от текущего значения переключателя @code{simp} (отключает упрощение
400 если равен @code{false}).
401 @item
402 @code{noeval} отключает вычисление для данной стадии @code{ev}
403 (см. шаг (4) ниже).  Это может быть полезно в комбинации с другими
404 переключателями и вызывает повторное упрощение @var{expr} без
405 перевычисления.
406 @item
407 @code{nouns} вызывает вычисление невычисляемых (noun) форм
408 (обычно это невычисляемые функции, такие как @code{'integrate}
409 или @code{'diff}) в @var{expr}.
410 @item
411 @code{expand} вызывает раскрытие скобок.
412 @item
413 @code{expand (@var{m},@var{n})} вызывает раскрытие скобок при  @code{maxposex} и
414 @code{maxnegex} равным  @var{m} и @var{n} соответственно.
415 @item
416 @code{detout} при вычислении обратных матриц в @var{expr}, сохраняет
417 определитель матрицы как общий множитель вместо того чтобы делить
418 на него каждый элемент матрицы в отдельности.
419 @item
420 @code{diff} вызывает вычисление всех производных в @var{expr}.
421 @item
422 @code{derivlist (@var{x}, @var{y}, @var{z}, ...)} вызовет вычисление
423 производных только относительно указанных переменных.
424 @item
425 @code{float} вызывает преобразование нецелых рациональных чисел
426 в числа с плавающей точкой.
427 @item
428 @code{numer} вызывает численное вычисление математических
429 функций (включая экспоненты), имеющих числовые аргументы.  Вызывает
430 замену переменных, имеющих числовые значения (см. @code{numerval}), этими
431 значениями.  Устанавливает значение переключателя @code{float}
432 равным @code{true}.
433 @item
434 @code{pred} вызывает вычисление предикатов (выражений, значение
435 которых @code{true} или @code{false}).
436 @item
437 @code{eval} вызывает дополнительное пост-вычисление @var{expr}
438 (см. шаг (5) ниже).
439 @code{eval} может встречаться несколько раз.
440 Для каждого @code{eval} выражение вычисляется еще раз.
441 @item
442 @code{A}, где @code{A} есть атом, являющийся флагом вычисления (см. @code{evflag}),
443 устанавливает значение @code{A} равным @code{true} в процессе
444 вычисления @var{expr}.
445 @item
446 @code{V: expression} (или альтернативно @code{V=expression})
447 присваивает @code{V} значение  @code{expression} в процессе вычисления
448 @var{expr}.  Если @code{V} является управляющей переменной (опцией)
449 Maxima, тогда значение @code{expression} используется в качестве
450 значения опции в процессе вычисления @var{expr}.  Если имеется более
451 одного аргумента @code{ev} данного типа, то присваивание осуществляется
452 параллельно.  Если @code{V} является не атомарным выражением, то
453 вместо присваивания осуществляется подстановка.
454 @item
455 @code{F}, где @code{F} есть имя функции, являющейся функцией
456 вычисления (см. @code{evfun}) вызывает применение @code{F} к @var{expr}.
457 @item
458 Любые другие имена функций (скажем @code{sum}) вызывают вычисление
459 этих функций в @var{expr}, так как если бы они имели
460 вычисляемую форму.
461 @item
462 Кроме того, встречающаяся в @var{expr} функция (скажем @code{F(x)})
463 может быть локально определена для вычисления @var{expr}, путем
464 задания аргумента в форме @code{F(x) := expression}.
465 @item
466 Если в качестве аргумента указан любой, не указанный выше атом, или
467 переменная с индексом, или выражение с индексом, то данный аргумент
468 вычисляется.  Если результатом вычисления является уравнение или
469 присваивание, то выполняется соответствующее присваивание или
470 подстановка.  Если результатом вычисления является список, то
471 элементы этого списка трактуются как дополнительные аргументы
472 @code{ev}.  Это, в частности, позволяет использовать список
473 уравнений (например @code{[X=1, Y=A**2]}), или список имен
474 уравнений (например @code{[%t1, %t2]}, где @code{%t1} и
475 @code{%t2} являются результатом работы функции @code{solve}.
476 @end itemize
478 Аргументы @code{ev} могут быть указаны в произвольном порядке за
479 исключением уравнений, которые выполняются последовательно слева
480 направо, и составных вычисляющих функций (например
481 @code{ev (@var{expr}, ratsimp, realpart)} выполняется как
482 @code{realpart (ratsimp (@var{expr}))}).
484 Переключатели @code{simp}, @code{numer}, @code{float} и @code{pred}
485 могут быть установлены локально в блоке, или глобально.
486 В последнем случае они будут действовать до переопределения.
488 Если выражение @var{expr} является каноническим рациональным
489 выражением (КРВ, canonical rational expression (CRE)), тогда
490 результатом @code{ev} тоже является КРВ, если только переключатели
491 @code{numer} и @code{float} оба не равны @code{true}.
493 @item
494 На шаге (1), составляется список не-индексированных
495 переменных входящих в левые части аргументов, являющихся уравнениями,
496 или в значения аргументов, если эти значения являются уравнениями.
497 Переменные (индексированные, которые не имеют соответствующих
498 функций массивов, и не-индексированные) в выражении @var{expr}
499 заменяются на свои глобальные значения, за исключением тех,
500 которые входят в вышеуказанный список.   Обычно, @var{expr} это просто
501 метка @code{%} (как @code{%i2} в примере ниже), так что на данном шаге
502 просто получается выражение, обозначаемое данной меткой.
504 @item
505 Если среди аргументов имеются подстановки, то они выполняются.
507 @item
508 Полученное выражение снова вычисляется (если одним из аргументов не
509 является @code{noeval}) и упрощается в соответствии с заданными
510 аргументами.  Все вызовы функций в @var{expr} выполняются после
511 вычисления переменных.  Таким образом @code{ev(F(x))} трактуется
512 как @code{F(ev(x))}.
514 @item
515 Для каждого @code{eval}, шаги (3) и (4) повторяются.
516 @end enumerate
518 Примеры:
520 @example
521 (%i1) sin(x) + cos(y) + (w+1)^2 + 'diff (sin(w), w);
522                                      d                    2
523 (%o1)              cos(y) + sin(x) + -- (sin(w)) + (w + 1)
524                                      dw
525 (%i2) ev (%, sin, expand, diff, x=2, y=1);
526                           2
527 (%o2)           cos(w) + w  + 2 w + cos(1) + 1.909297426825682
528 @end example
530 Имеется альтернативный синтаксис функции @code{ev}, который может
531 использоваться только на верхнем уровне: аргументы @code{ev()}
532 перечисляются через запятую после выражения.  Т.е. можно просто
533 написать
535 @example
536 @var{expr}, @var{arg_1}, ..., @var{arg_n}
537 @end example
539 Такая конструкция недопустима как часть другого выражения,
540 функции, блока и т.п.
542 Обратите внимание на параллельное присваивание в следующих
543 примерах.
545 @example
546 (%i3) programmode: false;
547 (%o3)                                false
548 (%i4) x+y, x: a+y, y: 2;
549 (%o4)                              y + a + 2
550 (%i5) 2*x - 3*y = 3$
551 (%i6) -3*x + 2*y = -4$
552 (%i7) solve ([%o5, %o6]);
553 Solution
555                                           1
556 (%t7)                               y = - -
557                                           5
559                                          6
560 (%t8)                                x = -
561                                          5
562 (%o8)                            [[%t7, %t8]]
563 (%i8) %o6, %o8;
564 (%o8)                              - 4 = - 4
565 (%i9) x + 1/x > gamma (1/2);
566                                    1
567 (%o9)                          x + - > sqrt(%pi)
568                                    x
569 (%i10) %, numer, x=1/2;
570 (%o10)                      2.5 > 1.772453850905516
571 (%i11) %, pred;
572 (%o11)                               true
573 @end example
575 @opencatbox{Категории:}
576 @category{Вычисление}
577 @closecatbox
578 @end deffn
580 @anchor{evflag}
581 @defvr {Свойство} evflag
582 Если символ @var{x} имеет свойство @code{evflag},
583 то выражения @code{ev(@var{expr}, @var{x})} и @code{@var{expr}, @var{x}}
584 (в интерактивной командной строке) эквивалентны @code{ev(@var{expr}, @var{x} = true)}.
585 Т.е. @var{x} имеет значение @code{true} в процессе вычисления @var{expr}.
587 Выражение @code{declare(@var{x}, evflag)}
588 устанавливает свойство @code{evflag} для переменной @var{x}.
590 Следующие переключатели имеют по умолчанию свойство @code{evflag}:
591 @c FOLLOWING LIST CONSTRUCTED FROM LIST UNDER (prog1 '(evflag properties) ...)
592 @c NEAR LINE 2649 OF mlisp.lisp AT PRESENT (2004/11).
593 @code{algebraic},
594 @code{cauchysum},
595 @code{demoivre},
596 @code{dotscrules},
597 @code{%emode},
598 @code{%enumer},
599 @code{exponentialize},
600 @code{exptisolate},
601 @code{factorflag},
602 @code{float},
603 @code{halfangles},
604 @code{infeval},
605 @code{isolate_wrt_times},
606 @code{keepfloat},
607 @code{letrat},
608 @code{listarith},
609 @code{logabs},
610 @code{logarc},
611 @code{logexpand},
612 @code{lognegint},
613 @code{lognumer},
614 @code{m1pbranch},
615 @code{numer_pbranch},
616 @code{programmode},
617 @code{radexpand},
618 @code{ratalgdenom},
619 @code{ratfac},
620 @code{ratmx},
621 @code{ratsimpexpons},
622 @code{simp},
623 @code{simpsum},
624 @code{sumexpand} и
625 @code{trigexpand}.
627 Примеры:
629 @c ===beg===
630 @c sin (1/2);
631 @c sin (1/2), float;
632 @c sin (1/2), float=true;
633 @c simp : false;
634 @c 1 + 1;
635 @c 1 + 1, simp;
636 @c simp : true;
637 @c sum (1/k^2, k, 1, inf);
638 @c sum (1/k^2, k, 1, inf), simpsum;
639 @c declare (aa, evflag);
640 @c if aa = true then YES else NO;
641 @c if aa = true then YES else NO, aa;
642 @c ===end===
643 @example
644 (%i1) sin (1/2);
645                                  1
646 (%o1)                        sin(-)
647                                  2
648 (%i2) sin (1/2), float;
649 (%o2)                   0.479425538604203
650 (%i3) sin (1/2), float=true;
651 (%o3)                   0.479425538604203
652 (%i4) simp : false;
653 (%o4)                         false
654 (%i5) 1 + 1;
655 (%o5)                         1 + 1
656 (%i6) 1 + 1, simp;
657 (%o6)                           2
658 (%i7) simp : true;
659 (%o7)                         true
660 (%i8) sum (1/k^2, k, 1, inf);
661                             inf
662                             ====
663                             \     1
664 (%o8)                        >    --
665                             /      2
666                             ====  k
667                             k = 1
668 (%i9) sum (1/k^2, k, 1, inf), simpsum;
669                                  2
670                               %pi
671 (%o9)                         ----
672                                6
673 (%i10) declare (aa, evflag);
674 (%o10)                        done
675 (%i11) if aa = true then YES else NO;
676 (%o11)                         NO
677 (%i12) if aa = true then YES else NO, aa;
678 (%o12)                         YES
679 @end example
681 @opencatbox{Категории:}
682 @category{Флаги вычисления}
683 @category{Флаги и переменные упрощения}
684 @closecatbox
685 @end defvr
687 @anchor{evfun}
688 @defvr {Свойство} evfun
689 Если функция @var{F} имеет свойство @code{evfun},
690 то выражения @code{ev(@var{expr}, @var{F})} и @code{@var{expr}, @var{F}}
691 (в интерактивной командной строке)
692 эквивалентны @code{@var{F}(ev(@var{expr}))}.
694 Если заданы две или более @code{evfun} функций @var{F}, @var{G}, то
695 функции применяются в порядке задания.
697 Выражение @code{declare(@var{F}, evfun)}
698 устанавливает свойство @code{evfun} для функции @var{F}.
700 Следующие функции имеют по умолчанию свойство @code{evfun}:
701 @c FOLLOWING LIST CONSTRUCTED FROM LIST UNDER (prog1 '(evfun properties) ...)
702 @c NEAR LINE 2643 IN mlisp.lisp AT PRESENT (2004/11).
703 @code{bfloat},
704 @code{factor},
705 @code{fullratsimp},
706 @code{logcontract},
707 @code{polarform},
708 @code{radcan},
709 @code{ratexpand},
710 @code{ratsimp},
711 @code{rectform},
712 @code{rootscontract},
713 @code{trigexpand} и
714 @code{trigreduce}.
716 Примеры:
718 @c ===beg===
719 @c x^3 - 1;
720 @c x^3 - 1, factor;
721 @c factor (x^3 - 1);
722 @c cos(4 * x) / sin(x)^4;
723 @c cos(4 * x) / sin(x)^4, trigexpand;
724 @c cos(4 * x) / sin(x)^4, trigexpand, ratexpand;
725 @c ratexpand (trigexpand (cos(4 * x) / sin(x)^4));
726 @c declare ([F, G], evfun);
727 @c (aa : bb, bb : cc, cc : dd);
728 @c aa;
729 @c aa, F;
730 @c F (aa);
731 @c F (ev (aa));
732 @c aa, F, G;
733 @c G (F (ev (aa)));
734 @c ===end===
735 @example
736 (%i1) x^3 - 1;
737                               3
738 (%o1)                        x  - 1
739 (%i2) x^3 - 1, factor;
740                                 2
741 (%o2)                 (x - 1) (x  + x + 1)
742 (%i3) factor (x^3 - 1);
743                                 2
744 (%o3)                 (x - 1) (x  + x + 1)
745 (%i4) cos(4 * x) / sin(x)^4;
746                             cos(4 x)
747 (%o4)                       --------
748                                4
749                             sin (x)
750 (%i5) cos(4 * x) / sin(x)^4, trigexpand;
751                  4           2       2         4
752               sin (x) - 6 cos (x) sin (x) + cos (x)
753 (%o5)         -------------------------------------
754                                 4
755                              sin (x)
756 (%i6) cos(4 * x) / sin(x)^4, trigexpand, ratexpand;
757                            2         4
758                       6 cos (x)   cos (x)
759 (%o6)               - --------- + ------- + 1
760                           2          4
761                        sin (x)    sin (x)
762 (%i7) ratexpand (trigexpand (cos(4 * x) / sin(x)^4));
763                            2         4
764                       6 cos (x)   cos (x)
765 (%o7)               - --------- + ------- + 1
766                           2          4
767                        sin (x)    sin (x)
768 (%i8) declare ([F, G], evfun);
769 (%o8)                         done
770 (%i9) (aa : bb, bb : cc, cc : dd);
771 (%o9)                          dd
772 (%i10) aa;
773 (%o10)                         bb
774 (%i11) aa, F;
775 (%o11)                        F(cc)
776 (%i12) F (aa);
777 (%o12)                        F(bb)
778 (%i13) F (ev (aa));
779 (%o13)                        F(cc)
780 (%i14) aa, F, G;
781 (%o14)                      G(F(cc))
782 (%i15) G (F (ev (aa)));
783 (%o15)                      G(F(cc))
784 @end example
786 @opencatbox{Категории:}
787 @category{Флаги вычисления}
788 @closecatbox
789 @end defvr
790 @c NEEDS WORK
791 @defvr {Управляющая переменная} infeval
792 Включает режим "бесконечного вычисления".  @code{ev} вычисляет
793 выражение повторно до тех пор пока оно не перестает изменяться.
794 Чтобы предотвратить вычисление отдельной переменной, скажем @code{X},
795 в данном режиме следует указать @code{X='X} в качестве
796 аргумента @code{ev}.  Разумеется, выражения вроде
797 @code{ev (X, X=X+1, infeval)} приводят к бесконечному циклу.
799 @opencatbox{Категории:}
800 @category{Флаги вычисления}
801 @closecatbox
802 @end defvr
804 @c REVIEW FOR ACCURACY AND COMPLETENESS
805 @c THIS ITEM IS VERY IMPORTANT !!
806 @c NEEDS EXAMPLES
807 @deffn {Функция} kill (@var{a_1}, ..., @var{a_n})
808 @deffnx {Функция} kill (labels)
809 @deffnx {Функция} kill (inlabels, outlabels, linelabels)
810 @deffnx {Функция} kill (@var{n})
811 @deffnx {Функция} kill ([@var{m}, @var{n}])
812 @deffnx {Функция} kill (values, functions, arrays, ...)
813 @deffnx {Функция} kill (all)
814 @deffnx {Функция} kill (allbut (@var{a_1}, ..., @var{a_n}))
816 Удаляет все связи (значение, функцию, массив или правило) аргументов @var{a_1}, ..., @var{a_n}.
817 Аргумент @var{a_k} может быть символом или отдельным элементом массива.
818 Если @var{a_k} является отдельным элементом массива, то @code{kill} удаляет
819 значение одного этого элемента и не затрагивает другие элементы массива.
821 Распознается несколько специальных форм аргументов.  При
822 этом аргументы различных типов могут быть скомбинированы,
823 например  @code{kill (inlabels, functions, allbut (foo, bar))}.
825 @code{kill (labels)} очищает значение меток ввода,
826 результата и меток промежуточных выражений, определенных на момент вызова.
827 @code{kill (inlabels)} очищает значение меток ввода, имена которых
828 начинаются с текущего значения @code{inchar}.
829 Аналогично,
830 @code{kill (outlabels)} очищает значение меток результата, имена которых
831 начинаются с текущего значения @code{outchar},
832 и @code{kill (linelabels)} очищает значение меток промежуточных
833 выражений, имена которых начинаются с текущего значения @code{linechar}.
835 @code{kill (@var{n})}, где @var{n} является целым числом,
836 очищает значение @var{n} первых меток ввода и результата.
838 @code{kill ([@var{m}, @var{n}])} очищает метки ввода и результата
839 с номерами от @var{m} до @var{n} включительно.
841 @code{kill (@var{infolist})}, где @var{infolist} есть один из
842 информационных списков @code{infolists} (например @code{values}, @code{functions}
843 или @code{arrays}), очищает значение всех элементов в
844 @var{infolist}.  См. также @code{infolists}.
846 @code{kill (all)} очищает значения всех элементов во всех
847 информационных списках (infolists).
848 @code{kill (all)} не восстанавливает стандартные значения глобальных
849 переменных.  См. @code{reset} по поводу восстановления стандартных
850 значений глобальных переменных.
852 @code{kill (allbut (@var{a_1}, ..., @var{a_n}))}
853 очищает все элементы во всех информационных списках кроме  @var{a_1}, ..., @var{a_n}.
854 @code{kill (allbut (@var{infolist}))} очищает все элементы кроме тех,
855 которые принадлежат информационному списку @var{infolist},
856 где @var{infolist} есть @code{values}, @code{functions}, @code{arrays}
857 и т.д.
859 Отметим, что для освобождения памяти, занимаемой значением символа,
860 необходимо очистить все объекты ссылающиеся на это значение.
861 Необходимо не только очистить сам символ, но и результирующую метку
862 указывающую на его значение.
864 Функция @code{kill} не вычисляет свои аргументы.
865 Для их вычисления можно использовать оператор кавычка-кавычка @code{'@w{}'}.
867 @code{kill (@var{symbol})} очищает все свойства символа @var{symbol} в
868 отличии от @code{remvalue}, @code{remfunction}, @code{remarray} и
869 @code{remrule}, которые очищают только определенное свойство.
871 @code{kill} всегда возвращает @code{done} даже если аргументы не имели
872 значения.
874 @opencatbox{Категории:}
875 @category{Вычисление}
876 @category{Управление сессией}
877 @category{Работа в консоли}
878 @closecatbox
879 @end deffn
881 @deffn {Функция} labels (@var{symbol})
882 @deffnx {Системная переменная} labels
883 Возвращает список меток ввода, результата или меток промежуточных
884 выражений, имена которых начинаются с символа @var{symbol}.
885 Обычно @var{symbol} это значение @code{inchar}, @code{outchar} или @code{linechar}.
886 Значение @var{symbol} может быть указано с или без знака процента,
887 например @code{i} и @code{%i} дадут одинаковый результат.
889 Если ни одна из меток не начинается с @var{symbol}, то возвращается
890 пустой список.
892 Функция @code{labels} не вычисляет свои аргументы.
893 Для их вычисления можно использовать оператор кавычка-кавычка @code{'@w{}'}.
894 Например, @code{labels (''inchar)} возвращает список меток ввода,
895 имена которых начинаются с текущего значения символа ввода.
897 Переменная @code{labels} есть список всех меток ввода, результата и
898 меток промежуточных выражений, включая все предыдущие метки если
899 значение @code{inchar}, @code{outchar}  или @code{linechar}
900 изменялось.
902 По умолчанию Maxima выводит результат каждого входного выражения
903 присваивая ему результирующую метку.  Печать результата можно подавить
904 используя для окончания выражения символ @code{$} вместо обычного
905 @code{;}.  В этом случае метка результата создается но сам
906 результат вычисления не печатается.  Тем не менее значение
907 метки результата запоминается и в дальнейшем может быть
908 использовано как обычно.  См. также @code{%}, @code{%%} и @code{%th}.
910 Метки промежуточных выражений создаются некоторыми функциями.
911 Переключатель @code{programmode} определяет будет ли команда
912 @code{solve}, и некоторые другие функции, создавать промежуточные
913 метки или возвращать список выражений.  Некоторые другие функции,
914 такие как @code{ldisplay}, всегда создают метки промежуточных
915 выражений.
917 См. также @code{inchar}, @code{outchar}, @code{linechar} и @code{infolists}.
919 @opencatbox{Категории:}
920 @category{Функции вывода}
921 @category{Флаги и переменные вывода}
922 @category{Работа в консоли}
923 @closecatbox
924 @end deffn
926 @c EXPAND; SHOW WHAT HAPPENS WHEN linenum IS ASSIGNED A VALUE
927 @defvr {Системная переменная} linenum
928 Порядковый номер текущей пары входного и результирующего выражений.
931 @opencatbox{Категории:}
932 @category{Флаги и переменные вывода}
933 @category{Работа в консоли}
934 @closecatbox
935 @end defvr
937 @c NEEDS WORK
938 @defvr {Системная переменная} myoptions
939 Значение по умолчанию: @code{[]}
941 @code{myoptions} есть список всех переключателей (флагов) переопределенных
942 пользователем вне зависимости от того имеет ли в данный момент
943 переключатель значение по умолчанию или нет.
945 @opencatbox{Категории:}
946 @category{Глобальные переменные}
947 @category{Управление сессией}
948 @category{Работа в консоли}
949 @closecatbox
950 @end defvr
952 @defvr {Управляющая переменная} nolabels
953 Значение по умолчанию: @code{false}
955 Если @code{nolabels} равна @code{true},
956 то метки ввода и результата
957 (@code{%i} и @code{%o}, соответственно)
958 печатаются но результирующее значение
959 этим меткам не присваивается а сами  метки не
960 добавляются к списку @code{labels}.
961 Поскольку результаты вычислений не
962 присваиваются меткам, то сборщик мусора
963 может освободить занимаемую ими память
964 для дальнейшего использования.
966 В противном случае меткам ввода и меткам результата присваиваются
967 соответствующие значения а сами метки добавляются к списку @code{labels}.
969 Флаг @code{nolabels} не влияет на метки промежуточных выражений (@code{%t}).
970 Независимо от значения @code{nolabels} равного @code{true} или @code{false},
971 меткам промежуточных выражений присваиваются значение и они 
972 добавляются к списку @code{labels}.
974 См. также @code{batch}, @code{load} и @code{labels}.
976 @opencatbox{Категории:}
977 @category{Глобальные флаги}
978 @category{Управление сессией}
979 @closecatbox
980 @end defvr
982 @c NEEDS WORK
983 @defvr {Управляющая переменная} optionset
984 Значение по умолчанию: @code{false}
986 Если @code{optionset} равно @code{true}, Maxima печатает сообщение
987 при изменении значения любого переключателя (опция, флаг) Maxima.
988 Это может быть полезно, когда пользователь не уверен в написании
989 названия опции и хочет быть уверен, что он переопределил
990 значение правильной переменной.
992 @opencatbox{Категории:}
993 @category{Глобальные флаги}
994 @category{Управление сессией}
995 @category{Работа в консоли}
996 @closecatbox
997 @end defvr
999 @deffn {Функция} playback ()
1000 @deffnx {Функция} playback (@var{n})
1001 @deffnx {Функция} playback ([@var{m}, @var{n}])
1002 @deffnx {Функция} playback ([@var{m}])
1003 @deffnx {Функция} playback (input)
1004 @deffnx {Функция} playback (slow)
1005 @deffnx {Функция} playback (time)
1006 @deffnx {Функция} playback (grind)
1007 Выводит значения входных, результирующих и промежуточных
1008 выражений без их перевычисления.
1009 @code{playback} выводит только выражения связанные с метками --
1010 любой другой вывод (текст выведенный @code{print} или @code{describe},
1011 сообщения об ошибках) не отображается.
1012 См. также @code{labels}.
1014 Функция @code{playback} не вычисляет свои аргументы.
1015 Для их вычисления можно использовать оператор кавычка-кавычка @code{'@w{}'}.
1016 @code{playback} возвращает значение @code{done}.
1018 @code{playback ()} (без аргументов) печатает все входные, результирующие и
1019 промежуточные выражения.  Результирующие выражения печатаются даже в случае,
1020 когда во время первоначальных вычислений использовался @code{$} для
1021 подавления печати результата.
1023 @code{playback (@var{n})} печатает @var{n} последних выражений.
1024 Каждое входное, результирующее и промежуточное выражение
1025 считается за одно.
1027 @code{playback ([@var{m}, @var{n}])} печатает входные, результирующие
1028 и промежуточные выражения с номерами от @var{m} до @var{n} включительно.
1030 @code{playback ([@var{m}])} эквивалентно
1031 @code{playback ([@var{m}, @var{m}])} и обычно печатает
1032 одну пару из входного и результирующего выражений.
1034 @code{playback (input)} печатает все входные выражения.
1036 @code{playback (slow)} останавливается между выражениями и
1037 ожидает пока пользователь нажмет "ввод" (@code{enter}).
1038 Данное поведение аналогично команде @code{demo}.
1039 @c WHAT DOES THE FOLLOWING MEAN ???
1040 @code{playback (slow)} полезно в сочетании с @code{save} или
1041 @code{stringout} для выбора выражений, которые надо
1042 сохранить в файле.
1044 @code{playback (time)} показывает время вычисления для каждого выражения.
1045 @c DON'T BOTHER TO MENTION OBSOLETE OPTIONS !!!
1046 @c The arguments @code{gctime} and @code{totaltime} have the same effect as @code{time}.
1048 @code{playback (grind)} печатает входные выражения в
1049 формате функции @code{grind}.  На результирующие выражения
1050 данная опция не влияет.  См. @code{grind}.
1052 Аргументы функции @code{playback} могут быть скомбинированы,
1053 например @code{playback ([5, 10], grind, time, slow)}.
1054 @c APPEARS TO BE input INTERSECT (UNION OF ALL OTHER ARGUMENTS). CORRECT ???
1056 @opencatbox{Категории:}
1057 @category{Функции вывода}
1058 @category{Работа в консоли}
1059 @closecatbox
1060 @end deffn
1062 @c NEEDS WORK ESPECIALLY EXAMPLES
1063 @c WHOLE BUSINESS WITH PROPERTIES IS PRETTY CONFUSING, TRY TO CLEAR IT UP
1064 @deffn {Функция} printprops (@var{a}, @var{i})
1065 @deffnx {Функция} printprops ([@var{a_1}, ..., @var{a_n}], @var{i})
1066 @deffnx {Функция} printprops (all, @var{i})
1067 Печатает свойство с именем @var{i}, ассоциированное с атомом
1068 @var{a}.  @var{a} может быть списком атомов или @code{all}.
1069 В последнем случае будут использованы все атомы имеющие данное свойство.
1070 Например, @code{printprops ([f, g], atvalue)}.  Функция
1071 @code{printprops} предназначена для свойств, которые не могут быть
1072 отображены другим способом, например для
1073 @code{atvalue}, @code{atomgrad}, @code{gradef} и @code{matchdeclare}.
1075 @opencatbox{Категории:}
1076 @category{Факты и выводы}
1077 @category{Функции вывода}
1078 @closecatbox
1079 @end deffn
1081 @defvr {Управляющая переменная} prompt
1082 Значение по умолчанию: @code{_}
1084 @code{prompt} символ приглашения для функции @code{demo},
1085 @code{playback (slow)} и диалога прерывания Maxima (break loop)
1086 (см. @code{break}).
1088 @opencatbox{Категории:}
1089 @category{Глобальные переменные}
1090 @category{Работа в консоли}
1091 @closecatbox
1092 @end defvr
1094 @deffn {Функция} quit ()
1095 Завершает сессию Maxima.
1096 Команда должна быть введена именно как @code{quit();} или @code{quit()$},
1097 а не просто @code{quit}.
1099 Для прерывания длительных вычислений можно нажать @code{control-C}.
1100 При этом по умолчанию Maxima возвращается на верхний уровень к
1101 приглашению ввода следующей команды.
1102 Если значение Lisp-переменной @code{*debugger-hook*} равно @code{nil},
1103 тогда нажатие @code{control-C} запускает Lisp отладчик.
1104 См. также @code{debugging}.
1106 @opencatbox{Категории:}
1107 @category{Работа в консоли}
1108 @closecatbox
1109 @end deffn
1111 @deffn {Функция} remfunction (@var{f_1}, ..., @var{f_n})
1112 @deffnx {Функция} remfunction (all)
1113 @c REPHRASE THIS TO SAY "UNBIND" OR SOMETHING OTHER THAN "REMOVE" (LATTER IS AMBIGUOUS) !!!
1114 Удаляет определенные пользователем функции @var{f_1}, ..., @var{f_n}.
1115 Аргументы могут быть именами обычных функций, созданных при помощи
1116 @code{:=} или @code{define}, или макро функций, созданных при помощи
1117 @code{::=}.
1119 @code{remfunction (all)} -- удаляет все определенные пользователем
1120 функции.
1122 @code{remfunction} не вычисляет свои аргументы.
1124 @code{remfunction} возвращает список символов, для которых
1125 было удалено определение функции.  Для символов, у которых
1126 не было соответствующих определений функций, возвращается
1127 @code{false}.
1129 Функция @code{remfunction} не применима к функциям массивам и переменным с индексом,
1130 к этим типам функций применима @code{remarray}.
1132 @opencatbox{Категории:}
1133 @category{Определение функций}
1134 @closecatbox
1135 @end deffn
1137 @deffn {Функция} reset ()
1138 Восстанавливает значения по умолчанию для глобальных переменных,
1139 опций и некоторых других переменных.
1141 @code{reset} восстанавливает значения переменных хранящихся в Lisp
1142 списке @code{*variable-initial-values*}.
1143 Lisp макрос @code{defmvar} добавляет переменные в этот список
1144 (вместе с выполнением других действий).  Многие, но не все,
1145 глобальные переменные и опции определены с помощью @code{defmvar};
1146 некоторые, определенные с помощью @code{defmvar} переменные, не
1147 являются глобальными переменными или опциями.
1149 @opencatbox{Категории:}
1150 @category{Управление сессией}
1151 @closecatbox
1152 @end deffn
1154 @defvr {Управляющая переменная} showtime
1155 Значение по умолчанию: @code{false}
1157 Если @code{showtime} равно @code{true} Maxima печатает время
1158 вычисления для каждого результирующего выражения.
1160 Время вычисления всегда запоминается, так что
1161 @code{time} и @code{playback} могут показать
1162 это время даже если @code{showtime} равно @code{false}.
1164 См. также @code{timer}.
1166 @opencatbox{Категории:}
1167 @category{Флаги и переменные вывода}
1168 @category{Отладка}
1169 @closecatbox
1170 @end defvr
1172 @c IS THIS ANY DIFFERENT FROM ASSIGNING A PROPERTY ??
1173 @c THIS REALLY SEEMS LIKE A HACK
1174 @deffn {Функция} sstatus (@var{feature}, @var{package})
1175 Устанавливает статус @var{feature} в @var{package}.
1176 После выполнения @code{sstatus (@var{feature}, @var{package})},
1177 @code{status (@var{feature}, @var{package})} возвращает @code{true}.
1178 Этот механизм может быть полезен при работе с пакетами для того, чтобы
1179 иметь возможность проверять какие опции пакета загружены.
1181 @opencatbox{Категории:}
1182 @category{Факты и выводы}
1183 @closecatbox
1184 @end deffn
1186 @c NEEDS EXPANSION, EXAMPLES
1187 @deffn {Функция} to_lisp ()
1188 Запускает интерпретатор используемой Lisp системы.
1189 Lisp функция @code{(to-maxima)} возвращает на уровень командной
1190 строки Maxima.
1192 @opencatbox{Категории:}
1193 @category{Работа в консоли}
1194 @closecatbox
1195 @end deffn
1197 @anchor{eval_string_lisp}
1198 @deffn {Function} eval_string_lisp (@var{str})
1200 Sequentially read lisp forms from the string @var{str} and evaluate them.
1201 Any values produced from the last form are returned as a Maxima list.
1203 Examples:
1205 @c ===beg===
1206 @c eval_string_lisp ("");
1207 @c eval_string_lisp ("(values)");
1208 @c eval_string_lisp ("69");
1209 @c eval_string_lisp ("1 2 3");
1210 @c eval_string_lisp ("(values 1 2 3)");
1211 @c eval_string_lisp ("(defun $foo (x) (* 2 x))");
1212 @c foo (5);
1213 @c ===end===
1214 @example
1215 @group
1216 (%i1) eval_string_lisp ("");
1217 (%o1) []
1218 @end group
1219 @group
1220 (%i2) eval_string_lisp ("(values)");
1221 (%o2) []
1222 @end group
1223 @group
1224 (%i3) eval_string_lisp ("69");
1225 (%o3) [69]
1226 @end group
1227 @group
1228 (%i4) eval_string_lisp ("1 2 3");
1229 (%o4) [3]
1230 @end group
1231 @group
1232 (%i5) eval_string_lisp ("(values 1 2 3)");
1233 (%o5) [1,2,3]
1234 @end group
1235 @group
1236 (%i6) eval_string_lisp ("(defun $foo (x) (* 2 x))");
1237 (%o6) [foo]
1238 @end group
1239 @group
1240 (%i7) foo (5);
1241 (%o7) 10
1242 @end group
1243 @end example
1245 See also @ref{eval_string}.
1247 @opencatbox{Категории:}
1248 @category{Debugging}
1249 @category{Evaluation}
1250 @closecatbox
1252 @end deffn
1254 @defvr {Системная переменная} values
1255 Начальное значение: @code{[]}
1257 @code{values} содержит список всех пользовательских переменных, которым
1258 присвоено значение (не Maxima опций и переключателей).
1259 Этот список состоит из символов, которым было присвоено значение при
1260 помощи операторов @code{:}, @code{::} или @code{:=}.
1262 @opencatbox{Категории:}
1263 @category{Вычисление}
1264 @category{Глобальные переменные} 
1265 @closecatbox
1266 @end defvr