Print a warning when translating subscripted functions
[maxima.git] / doc / info / ru / Command.texi
blobf141e190567c2014c1ad0b13454ddab4912e4138
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 @deffn {Функция} ev (@var{expr}, @var{arg_1}, ..., @var{arg_n})
383 Вычисляет выражение @var{expr} в окружении определяемом аргументами
384 @var{arg_1}, ..., @var{arg_n}.  Данные аргументы могут быть
385 переключателями (логические флаги), присваиваниями, уравнениями и функциями.
386 @code{ev} возвращает результат вычисления (выражение).
388 Вычисление осуществляется в несколько шагов.
390 @enumerate
391 @item
392 Сначала окружение устанавливается в соответствии с аргументами,
393 которые могут быть одним из следующего:
395 @itemize @bullet
396 @item
397 @code{simp} вызывает упрощение выражения @var{expr} вне зависимости
398 от текущего значения переключателя @code{simp} (отключает упрощение
399 если равен @code{false}).
400 @item
401 @code{noeval} отключает вычисление для данной стадии @code{ev}
402 (см. шаг (4) ниже).  Это может быть полезно в комбинации с другими
403 переключателями и вызывает повторное упрощение @var{expr} без
404 перевычисления.
405 @item
406 @code{nouns} вызывает вычисление невычисляемых (noun) форм
407 (обычно это невычисляемые функции, такие как @code{'integrate}
408 или @code{'diff}) в @var{expr}.
409 @item
410 @code{expand} вызывает раскрытие скобок.
411 @item
412 @code{expand (@var{m},@var{n})} вызывает раскрытие скобок при  @code{maxposex} и
413 @code{maxnegex} равным  @var{m} и @var{n} соответственно.
414 @item
415 @code{detout} при вычислении обратных матриц в @var{expr}, сохраняет
416 определитель матрицы как общий множитель вместо того чтобы делить
417 на него каждый элемент матрицы в отдельности.
418 @item
419 @code{diff} вызывает вычисление всех производных в @var{expr}.
420 @item
421 @code{derivlist (@var{x}, @var{y}, @var{z}, ...)} вызовет вычисление
422 производных только относительно указанных переменных.
423 @item
424 @code{float} вызывает преобразование нецелых рациональных чисел
425 в числа с плавающей точкой.
426 @item
427 @code{numer} вызывает численное вычисление математических
428 функций (включая экспоненты), имеющих числовые аргументы.  Вызывает
429 замену переменных, имеющих числовые значения (см. @code{numerval}), этими
430 значениями.  Устанавливает значение переключателя @code{float}
431 равным @code{true}.
432 @item
433 @code{pred} вызывает вычисление предикатов (выражений, значение
434 которых @code{true} или @code{false}).
435 @item
436 @code{eval} вызывает дополнительное пост-вычисление @var{expr}
437 (см. шаг (5) ниже).
438 @code{eval} может встречаться несколько раз.
439 Для каждого @code{eval} выражение вычисляется еще раз.
440 @item
441 @code{A}, где @code{A} есть атом, являющийся флагом вычисления (см. @code{evflag}),
442 устанавливает значение @code{A} равным @code{true} в процессе
443 вычисления @var{expr}.
444 @item
445 @code{V: expression} (или альтернативно @code{V=expression})
446 присваивает @code{V} значение  @code{expression} в процессе вычисления
447 @var{expr}.  Если @code{V} является управляющей переменной (опцией)
448 Maxima, тогда значение @code{expression} используется в качестве
449 значения опции в процессе вычисления @var{expr}.  Если имеется более
450 одного аргумента @code{ev} данного типа, то присваивание осуществляется
451 параллельно.  Если @code{V} является не атомарным выражением, то
452 вместо присваивания осуществляется подстановка.
453 @item
454 @code{F}, где @code{F} есть имя функции, являющейся функцией
455 вычисления (см. @code{evfun}) вызывает применение @code{F} к @var{expr}.
456 @item
457 Любые другие имена функций (скажем @code{sum}) вызывают вычисление
458 этих функций в @var{expr}, так как если бы они имели
459 вычисляемую форму.
460 @item
461 Кроме того, встречающаяся в @var{expr} функция (скажем @code{F(x)})
462 может быть локально определена для вычисления @var{expr}, путем
463 задания аргумента в форме @code{F(x) := expression}.
464 @item
465 Если в качестве аргумента указан любой, не указанный выше атом, или
466 переменная с индексом, или выражение с индексом, то данный аргумент
467 вычисляется.  Если результатом вычисления является уравнение или
468 присваивание, то выполняется соответствующее присваивание или
469 подстановка.  Если результатом вычисления является список, то
470 элементы этого списка трактуются как дополнительные аргументы
471 @code{ev}.  Это, в частности, позволяет использовать список
472 уравнений (например @code{[X=1, Y=A**2]}), или список имен
473 уравнений (например @code{[%t1, %t2]}, где @code{%t1} и
474 @code{%t2} являются результатом работы функции @code{solve}.
475 @end itemize
477 Аргументы @code{ev} могут быть указаны в произвольном порядке за
478 исключением уравнений, которые выполняются последовательно слева
479 направо, и составных вычисляющих функций (например
480 @code{ev (@var{expr}, ratsimp, realpart)} выполняется как
481 @code{realpart (ratsimp (@var{expr}))}).
483 Переключатели @code{simp}, @code{numer}, @code{float} и @code{pred}
484 могут быть установлены локально в блоке, или глобально.
485 В последнем случае они будут действовать до переопределения.
487 Если выражение @var{expr} является каноническим рациональным
488 выражением (КРВ, canonical rational expression (CRE)), тогда
489 результатом @code{ev} тоже является КРВ, если только переключатели
490 @code{numer} и @code{float} оба не равны @code{true}.
492 @item
493 На шаге (1), составляется список не-индексированных
494 переменных входящих в левые части аргументов, являющихся уравнениями,
495 или в значения аргументов, если эти значения являются уравнениями.
496 Переменные (индексированные, которые не имеют соответствующих
497 функций массивов, и не-индексированные) в выражении @var{expr}
498 заменяются на свои глобальные значения, за исключением тех,
499 которые входят в вышеуказанный список.   Обычно, @var{expr} это просто
500 метка @code{%} (как @code{%i2} в примере ниже), так что на данном шаге
501 просто получается выражение, обозначаемое данной меткой.
503 @item
504 Если среди аргументов имеются подстановки, то они выполняются.
506 @item
507 Полученное выражение снова вычисляется (если одним из аргументов не
508 является @code{noeval}) и упрощается в соответствии с заданными
509 аргументами.  Все вызовы функций в @var{expr} выполняются после
510 вычисления переменных.  Таким образом @code{ev(F(x))} трактуется
511 как @code{F(ev(x))}.
513 @item
514 Для каждого @code{eval}, шаги (3) и (4) повторяются.
515 @end enumerate
517 Примеры:
519 @example
520 (%i1) sin(x) + cos(y) + (w+1)^2 + 'diff (sin(w), w);
521                                      d                    2
522 (%o1)              cos(y) + sin(x) + -- (sin(w)) + (w + 1)
523                                      dw
524 (%i2) ev (%, sin, expand, diff, x=2, y=1);
525                           2
526 (%o2)           cos(w) + w  + 2 w + cos(1) + 1.909297426825682
527 @end example
529 Имеется альтернативный синтаксис функции @code{ev}, который может
530 использоваться только на верхнем уровне: аргументы @code{ev()}
531 перечисляются через запятую после выражения.  Т.е. можно просто
532 написать
534 @example
535 @var{expr}, @var{arg_1}, ..., @var{arg_n}
536 @end example
538 Такая конструкция недопустима как часть другого выражения,
539 функции, блока и т.п.
541 Обратите внимание на параллельное присваивание в следующих
542 примерах.
544 @example
545 (%i3) programmode: false;
546 (%o3)                                false
547 (%i4) x+y, x: a+y, y: 2;
548 (%o4)                              y + a + 2
549 (%i5) 2*x - 3*y = 3$
550 (%i6) -3*x + 2*y = -4$
551 (%i7) solve ([%o5, %o6]);
552 Solution
554                                           1
555 (%t7)                               y = - -
556                                           5
558                                          6
559 (%t8)                                x = -
560                                          5
561 (%o8)                            [[%t7, %t8]]
562 (%i8) %o6, %o8;
563 (%o8)                              - 4 = - 4
564 (%i9) x + 1/x > gamma (1/2);
565                                    1
566 (%o9)                          x + - > sqrt(%pi)
567                                    x
568 (%i10) %, numer, x=1/2;
569 (%o10)                      2.5 > 1.772453850905516
570 (%i11) %, pred;
571 (%o11)                               true
572 @end example
574 @opencatbox{Категории:}
575 @category{Вычисление}
576 @closecatbox
577 @end deffn
579 @defvr {Свойство} evflag
580 Если символ @var{x} имеет свойство @code{evflag},
581 то выражения @code{ev(@var{expr}, @var{x})} и @code{@var{expr}, @var{x}}
582 (в интерактивной командной строке) эквивалентны @code{ev(@var{expr}, @var{x} = true)}.
583 Т.е. @var{x} имеет значение @code{true} в процессе вычисления @var{expr}.
585 Выражение @code{declare(@var{x}, evflag)}
586 устанавливает свойство @code{evflag} для переменной @var{x}.
588 Следующие переключатели имеют по умолчанию свойство @code{evflag}:
589 @c FOLLOWING LIST CONSTRUCTED FROM LIST UNDER (prog1 '(evflag properties) ...)
590 @c NEAR LINE 2649 OF mlisp.lisp AT PRESENT (2004/11).
591 @code{algebraic},
592 @code{cauchysum},
593 @code{demoivre},
594 @code{dotscrules},
595 @code{%emode},
596 @code{%enumer},
597 @code{exponentialize},
598 @code{exptisolate},
599 @code{factorflag},
600 @code{float},
601 @code{halfangles},
602 @code{infeval},
603 @code{isolate_wrt_times},
604 @code{keepfloat},
605 @code{letrat},
606 @code{listarith},
607 @code{logabs},
608 @code{logarc},
609 @code{logexpand},
610 @code{lognegint},
611 @code{lognumer},
612 @code{m1pbranch},
613 @code{numer_pbranch},
614 @code{programmode},
615 @code{radexpand},
616 @code{ratalgdenom},
617 @code{ratfac},
618 @code{ratmx},
619 @code{ratsimpexpons},
620 @code{simp},
621 @code{simpsum},
622 @code{sumexpand} и
623 @code{trigexpand}.
625 Примеры:
627 @c ===beg===
628 @c sin (1/2);
629 @c sin (1/2), float;
630 @c sin (1/2), float=true;
631 @c simp : false;
632 @c 1 + 1;
633 @c 1 + 1, simp;
634 @c simp : true;
635 @c sum (1/k^2, k, 1, inf);
636 @c sum (1/k^2, k, 1, inf), simpsum;
637 @c declare (aa, evflag);
638 @c if aa = true then YES else NO;
639 @c if aa = true then YES else NO, aa;
640 @c ===end===
641 @example
642 (%i1) sin (1/2);
643                                  1
644 (%o1)                        sin(-)
645                                  2
646 (%i2) sin (1/2), float;
647 (%o2)                   0.479425538604203
648 (%i3) sin (1/2), float=true;
649 (%o3)                   0.479425538604203
650 (%i4) simp : false;
651 (%o4)                         false
652 (%i5) 1 + 1;
653 (%o5)                         1 + 1
654 (%i6) 1 + 1, simp;
655 (%o6)                           2
656 (%i7) simp : true;
657 (%o7)                         true
658 (%i8) sum (1/k^2, k, 1, inf);
659                             inf
660                             ====
661                             \     1
662 (%o8)                        >    --
663                             /      2
664                             ====  k
665                             k = 1
666 (%i9) sum (1/k^2, k, 1, inf), simpsum;
667                                  2
668                               %pi
669 (%o9)                         ----
670                                6
671 (%i10) declare (aa, evflag);
672 (%o10)                        done
673 (%i11) if aa = true then YES else NO;
674 (%o11)                         NO
675 (%i12) if aa = true then YES else NO, aa;
676 (%o12)                         YES
677 @end example
679 @opencatbox{Категории:}
680 @category{Флаги вычисления}
681 @category{Флаги и переменные упрощения}
682 @closecatbox
683 @end defvr
685 @defvr {Свойство} evfun
686 Если функция @var{F} имеет свойство @code{evfun},
687 то выражения @code{ev(@var{expr}, @var{F})} и @code{@var{expr}, @var{F}}
688 (в интерактивной командной строке)
689 эквивалентны @code{@var{F}(ev(@var{expr}))}.
691 Если заданы две или более @code{evfun} функций @var{F}, @var{G}, то
692 функции применяются в порядке задания.
694 Выражение @code{declare(@var{F}, evfun)}
695 устанавливает свойство @code{evfun} для функции @var{F}.
697 Следующие функции имеют по умолчанию свойство @code{evfun}:
698 @c FOLLOWING LIST CONSTRUCTED FROM LIST UNDER (prog1 '(evfun properties) ...)
699 @c NEAR LINE 2643 IN mlisp.lisp AT PRESENT (2004/11).
700 @code{bfloat},
701 @code{factor},
702 @code{fullratsimp},
703 @code{logcontract},
704 @code{polarform},
705 @code{radcan},
706 @code{ratexpand},
707 @code{ratsimp},
708 @code{rectform},
709 @code{rootscontract},
710 @code{trigexpand} и
711 @code{trigreduce}.
713 Примеры:
715 @c ===beg===
716 @c x^3 - 1;
717 @c x^3 - 1, factor;
718 @c factor (x^3 - 1);
719 @c cos(4 * x) / sin(x)^4;
720 @c cos(4 * x) / sin(x)^4, trigexpand;
721 @c cos(4 * x) / sin(x)^4, trigexpand, ratexpand;
722 @c ratexpand (trigexpand (cos(4 * x) / sin(x)^4));
723 @c declare ([F, G], evfun);
724 @c (aa : bb, bb : cc, cc : dd);
725 @c aa;
726 @c aa, F;
727 @c F (aa);
728 @c F (ev (aa));
729 @c aa, F, G;
730 @c G (F (ev (aa)));
731 @c ===end===
732 @example
733 (%i1) x^3 - 1;
734                               3
735 (%o1)                        x  - 1
736 (%i2) x^3 - 1, factor;
737                                 2
738 (%o2)                 (x - 1) (x  + x + 1)
739 (%i3) factor (x^3 - 1);
740                                 2
741 (%o3)                 (x - 1) (x  + x + 1)
742 (%i4) cos(4 * x) / sin(x)^4;
743                             cos(4 x)
744 (%o4)                       --------
745                                4
746                             sin (x)
747 (%i5) cos(4 * x) / sin(x)^4, trigexpand;
748                  4           2       2         4
749               sin (x) - 6 cos (x) sin (x) + cos (x)
750 (%o5)         -------------------------------------
751                                 4
752                              sin (x)
753 (%i6) cos(4 * x) / sin(x)^4, trigexpand, ratexpand;
754                            2         4
755                       6 cos (x)   cos (x)
756 (%o6)               - --------- + ------- + 1
757                           2          4
758                        sin (x)    sin (x)
759 (%i7) ratexpand (trigexpand (cos(4 * x) / sin(x)^4));
760                            2         4
761                       6 cos (x)   cos (x)
762 (%o7)               - --------- + ------- + 1
763                           2          4
764                        sin (x)    sin (x)
765 (%i8) declare ([F, G], evfun);
766 (%o8)                         done
767 (%i9) (aa : bb, bb : cc, cc : dd);
768 (%o9)                          dd
769 (%i10) aa;
770 (%o10)                         bb
771 (%i11) aa, F;
772 (%o11)                        F(cc)
773 (%i12) F (aa);
774 (%o12)                        F(bb)
775 (%i13) F (ev (aa));
776 (%o13)                        F(cc)
777 (%i14) aa, F, G;
778 (%o14)                      G(F(cc))
779 (%i15) G (F (ev (aa)));
780 (%o15)                      G(F(cc))
781 @end example
783 @opencatbox{Категории:}
784 @category{Флаги вычисления}
785 @closecatbox
786 @end defvr
787 @c NEEDS WORK
788 @defvr {Управляющая переменная} infeval
789 Включает режим "бесконечного вычисления".  @code{ev} вычисляет
790 выражение повторно до тех пор пока оно не перестает изменяться.
791 Чтобы предотвратить вычисление отдельной переменной, скажем @code{X},
792 в данном режиме следует указать @code{X='X} в качестве
793 аргумента @code{ev}.  Разумеется, выражения вроде
794 @code{ev (X, X=X+1, infeval)} приводят к бесконечному циклу.
796 @opencatbox{Категории:}
797 @category{Флаги вычисления}
798 @closecatbox
799 @end defvr
801 @c REVIEW FOR ACCURACY AND COMPLETENESS
802 @c THIS ITEM IS VERY IMPORTANT !!
803 @c NEEDS EXAMPLES
804 @deffn {Функция} kill (@var{a_1}, ..., @var{a_n})
805 @deffnx {Функция} kill (labels)
806 @deffnx {Функция} kill (inlabels, outlabels, linelabels)
807 @deffnx {Функция} kill (@var{n})
808 @deffnx {Функция} kill ([@var{m}, @var{n}])
809 @deffnx {Функция} kill (values, functions, arrays, ...)
810 @deffnx {Функция} kill (all)
811 @deffnx {Функция} kill (allbut (@var{a_1}, ..., @var{a_n}))
813 Удаляет все связи (значение, функцию, массив или правило) аргументов @var{a_1}, ..., @var{a_n}.
814 Аргумент @var{a_k} может быть символом или отдельным элементом массива.
815 Если @var{a_k} является отдельным элементом массива, то @code{kill} удаляет
816 значение одного этого элемента и не затрагивает другие элементы массива.
818 Распознается несколько специальных форм аргументов.  При
819 этом аргументы различных типов могут быть скомбинированы,
820 например  @code{kill (inlabels, functions, allbut (foo, bar))}.
822 @code{kill (labels)} очищает значение меток ввода,
823 результата и меток промежуточных выражений, определенных на момент вызова.
824 @code{kill (inlabels)} очищает значение меток ввода, имена которых
825 начинаются с текущего значения @code{inchar}.
826 Аналогично,
827 @code{kill (outlabels)} очищает значение меток результата, имена которых
828 начинаются с текущего значения @code{outchar},
829 и @code{kill (linelabels)} очищает значение меток промежуточных
830 выражений, имена которых начинаются с текущего значения @code{linechar}.
832 @code{kill (@var{n})}, где @var{n} является целым числом,
833 очищает значение @var{n} первых меток ввода и результата.
835 @code{kill ([@var{m}, @var{n}])} очищает метки ввода и результата
836 с номерами от @var{m} до @var{n} включительно.
838 @code{kill (@var{infolist})}, где @var{infolist} есть один из
839 информационных списков @code{infolists} (например @code{values}, @code{functions}
840 или @code{arrays}), очищает значение всех элементов в
841 @var{infolist}.  См. также @code{infolists}.
843 @code{kill (all)} очищает значения всех элементов во всех
844 информационных списках (infolists).
845 @code{kill (all)} не восстанавливает стандартные значения глобальных
846 переменных.  См. @code{reset} по поводу восстановления стандартных
847 значений глобальных переменных.
849 @code{kill (allbut (@var{a_1}, ..., @var{a_n}))}
850 очищает все элементы во всех информационных списках кроме  @var{a_1}, ..., @var{a_n}.
851 @code{kill (allbut (@var{infolist}))} очищает все элементы кроме тех,
852 которые принадлежат информационному списку @var{infolist},
853 где @var{infolist} есть @code{values}, @code{functions}, @code{arrays}
854 и т.д.
856 Отметим, что для освобождения памяти, занимаемой значением символа,
857 необходимо очистить все объекты ссылающиеся на это значение.
858 Необходимо не только очистить сам символ, но и результирующую метку
859 указывающую на его значение.
861 Функция @code{kill} не вычисляет свои аргументы.
862 Для их вычисления можно использовать оператор кавычка-кавычка @code{'@w{}'}.
864 @code{kill (@var{symbol})} очищает все свойства символа @var{symbol} в
865 отличии от @code{remvalue}, @code{remfunction}, @code{remarray} и
866 @code{remrule}, которые очищают только определенное свойство.
868 @code{kill} всегда возвращает @code{done} даже если аргументы не имели
869 значения.
871 @opencatbox{Категории:}
872 @category{Вычисление}
873 @category{Управление сессией}
874 @category{Работа в консоли}
875 @closecatbox
876 @end deffn
878 @deffn {Функция} labels (@var{symbol})
879 @deffnx {Системная переменная} labels
880 Возвращает список меток ввода, результата или меток промежуточных
881 выражений, имена которых начинаются с символа @var{symbol}.
882 Обычно @var{symbol} это значение @code{inchar}, @code{outchar} или @code{linechar}.
883 Значение @var{symbol} может быть указано с или без знака процента,
884 например @code{i} и @code{%i} дадут одинаковый результат.
886 Если ни одна из меток не начинается с @var{symbol}, то возвращается
887 пустой список.
889 Функция @code{labels} не вычисляет свои аргументы.
890 Для их вычисления можно использовать оператор кавычка-кавычка @code{'@w{}'}.
891 Например, @code{labels (''inchar)} возвращает список меток ввода,
892 имена которых начинаются с текущего значения символа ввода.
894 Переменная @code{labels} есть список всех меток ввода, результата и
895 меток промежуточных выражений, включая все предыдущие метки если
896 значение @code{inchar}, @code{outchar}  или @code{linechar}
897 изменялось.
899 По умолчанию Maxima выводит результат каждого входного выражения
900 присваивая ему результирующую метку.  Печать результата можно подавить
901 используя для окончания выражения символ @code{$} вместо обычного
902 @code{;}.  В этом случае метка результата создается но сам
903 результат вычисления не печатается.  Тем не менее значение
904 метки результата запоминается и в дальнейшем может быть
905 использовано как обычно.  См. также @code{%}, @code{%%} и @code{%th}.
907 Метки промежуточных выражений создаются некоторыми функциями.
908 Переключатель @code{programmode} определяет будет ли команда
909 @code{solve}, и некоторые другие функции, создавать промежуточные
910 метки или возвращать список выражений.  Некоторые другие функции,
911 такие как @code{ldisplay}, всегда создают метки промежуточных
912 выражений.
914 См. также @code{inchar}, @code{outchar}, @code{linechar} и @code{infolists}.
916 @opencatbox{Категории:}
917 @category{Функции вывода}
918 @category{Флаги и переменные вывода}
919 @category{Работа в консоли}
920 @closecatbox
921 @end deffn
923 @c EXPAND; SHOW WHAT HAPPENS WHEN linenum IS ASSIGNED A VALUE
924 @defvr {Системная переменная} linenum
925 Порядковый номер текущей пары входного и результирующего выражений.
928 @opencatbox{Категории:}
929 @category{Флаги и переменные вывода}
930 @category{Работа в консоли}
931 @closecatbox
932 @end defvr
934 @c NEEDS WORK
935 @defvr {Системная переменная} myoptions
936 Значение по умолчанию: @code{[]}
938 @code{myoptions} есть список всех переключателей (флагов) переопределенных
939 пользователем вне зависимости от того имеет ли в данный момент
940 переключатель значение по умолчанию или нет.
942 @opencatbox{Категории:}
943 @category{Глобальные переменные}
944 @category{Управление сессией}
945 @category{Работа в консоли}
946 @closecatbox
947 @end defvr
949 @defvr {Управляющая переменная} nolabels
950 Значение по умолчанию: @code{false}
952 Если @code{nolabels} равна @code{true},
953 то метки ввода и результата
954 (@code{%i} и @code{%o}, соответственно)
955 печатаются но результирующее значение
956 этим меткам не присваивается а сами  метки не
957 добавляются к списку @code{labels}.
958 Поскольку результаты вычислений не
959 присваиваются меткам, то сборщик мусора
960 может освободить занимаемую ими память
961 для дальнейшего использования.
963 В противном случае меткам ввода и меткам результата присваиваются
964 соответствующие значения а сами метки добавляются к списку @code{labels}.
966 Флаг @code{nolabels} не влияет на метки промежуточных выражений (@code{%t}).
967 Независимо от значения @code{nolabels} равного @code{true} или @code{false},
968 меткам промежуточных выражений присваиваются значение и они 
969 добавляются к списку @code{labels}.
971 См. также @code{batch}, @code{load} и @code{labels}.
973 @opencatbox{Категории:}
974 @category{Глобальные флаги}
975 @category{Управление сессией}
976 @closecatbox
977 @end defvr
979 @c NEEDS WORK
980 @defvr {Управляющая переменная} optionset
981 Значение по умолчанию: @code{false}
983 Если @code{optionset} равно @code{true}, Maxima печатает сообщение
984 при изменении значения любого переключателя (опция, флаг) Maxima.
985 Это может быть полезно, когда пользователь не уверен в написании
986 названия опции и хочет быть уверен, что он переопределил
987 значение правильной переменной.
989 @opencatbox{Категории:}
990 @category{Глобальные флаги}
991 @category{Управление сессией}
992 @category{Работа в консоли}
993 @closecatbox
994 @end defvr
996 @deffn {Функция} playback ()
997 @deffnx {Функция} playback (@var{n})
998 @deffnx {Функция} playback ([@var{m}, @var{n}])
999 @deffnx {Функция} playback ([@var{m}])
1000 @deffnx {Функция} playback (input)
1001 @deffnx {Функция} playback (slow)
1002 @deffnx {Функция} playback (time)
1003 @deffnx {Функция} playback (grind)
1004 Выводит значения входных, результирующих и промежуточных
1005 выражений без их перевычисления.
1006 @code{playback} выводит только выражения связанные с метками --
1007 любой другой вывод (текст выведенный @code{print} или @code{describe},
1008 сообщения об ошибках) не отображается.
1009 См. также @code{labels}.
1011 Функция @code{playback} не вычисляет свои аргументы.
1012 Для их вычисления можно использовать оператор кавычка-кавычка @code{'@w{}'}.
1013 @code{playback} возвращает значение @code{done}.
1015 @code{playback ()} (без аргументов) печатает все входные, результирующие и
1016 промежуточные выражения.  Результирующие выражения печатаются даже в случае,
1017 когда во время первоначальных вычислений использовался @code{$} для
1018 подавления печати результата.
1020 @code{playback (@var{n})} печатает @var{n} последних выражений.
1021 Каждое входное, результирующее и промежуточное выражение
1022 считается за одно.
1024 @code{playback ([@var{m}, @var{n}])} печатает входные, результирующие
1025 и промежуточные выражения с номерами от @var{m} до @var{n} включительно.
1027 @code{playback ([@var{m}])} эквивалентно
1028 @code{playback ([@var{m}, @var{m}])} и обычно печатает
1029 одну пару из входного и результирующего выражений.
1031 @code{playback (input)} печатает все входные выражения.
1033 @code{playback (slow)} останавливается между выражениями и
1034 ожидает пока пользователь нажмет "ввод" (@code{enter}).
1035 Данное поведение аналогично команде @code{demo}.
1036 @c WHAT DOES THE FOLLOWING MEAN ???
1037 @code{playback (slow)} полезно в сочетании с @code{save} или
1038 @code{stringout} для выбора выражений, которые надо
1039 сохранить в файле.
1041 @code{playback (time)} показывает время вычисления для каждого выражения.
1042 @c DON'T BOTHER TO MENTION OBSOLETE OPTIONS !!!
1043 @c The arguments @code{gctime} and @code{totaltime} have the same effect as @code{time}.
1045 @code{playback (grind)} печатает входные выражения в
1046 формате функции @code{grind}.  На результирующие выражения
1047 данная опция не влияет.  См. @code{grind}.
1049 Аргументы функции @code{playback} могут быть скомбинированы,
1050 например @code{playback ([5, 10], grind, time, slow)}.
1051 @c APPEARS TO BE input INTERSECT (UNION OF ALL OTHER ARGUMENTS). CORRECT ???
1053 @opencatbox{Категории:}
1054 @category{Функции вывода}
1055 @category{Работа в консоли}
1056 @closecatbox
1057 @end deffn
1059 @c NEEDS WORK ESPECIALLY EXAMPLES
1060 @c WHOLE BUSINESS WITH PROPERTIES IS PRETTY CONFUSING, TRY TO CLEAR IT UP
1061 @deffn {Функция} printprops (@var{a}, @var{i})
1062 @deffnx {Функция} printprops ([@var{a_1}, ..., @var{a_n}], @var{i})
1063 @deffnx {Функция} printprops (all, @var{i})
1064 Печатает свойство с именем @var{i}, ассоциированное с атомом
1065 @var{a}.  @var{a} может быть списком атомов или @code{all}.
1066 В последнем случае будут использованы все атомы имеющие данное свойство.
1067 Например, @code{printprops ([f, g], atvalue)}.  Функция
1068 @code{printprops} предназначена для свойств, которые не могут быть
1069 отображены другим способом, например для
1070 @code{atvalue}, @code{atomgrad}, @code{gradef} и @code{matchdeclare}.
1072 @opencatbox{Категории:}
1073 @category{Факты и выводы}
1074 @category{Функции вывода}
1075 @closecatbox
1076 @end deffn
1078 @defvr {Управляющая переменная} prompt
1079 Значение по умолчанию: @code{_}
1081 @code{prompt} символ приглашения для функции @code{demo},
1082 @code{playback (slow)} и диалога прерывания Maxima (break loop)
1083 (см. @code{break}).
1085 @opencatbox{Категории:}
1086 @category{Глобальные переменные}
1087 @category{Работа в консоли}
1088 @closecatbox
1089 @end defvr
1091 @deffn {Функция} quit ()
1092 Завершает сессию Maxima.
1093 Команда должна быть введена именно как @code{quit();} или @code{quit()$},
1094 а не просто @code{quit}.
1096 Для прерывания длительных вычислений можно нажать @code{control-C}.
1097 При этом по умолчанию Maxima возвращается на верхний уровень к
1098 приглашению ввода следующей команды.
1099 Если значение Lisp-переменной @code{*debugger-hook*} равно @code{nil},
1100 тогда нажатие @code{control-C} запускает Lisp отладчик.
1101 См. также @code{debugging}.
1103 @opencatbox{Категории:}
1104 @category{Работа в консоли}
1105 @closecatbox
1106 @end deffn
1108 @deffn {Функция} remfunction (@var{f_1}, ..., @var{f_n})
1109 @deffnx {Функция} remfunction (all)
1110 @c REPHRASE THIS TO SAY "UNBIND" OR SOMETHING OTHER THAN "REMOVE" (LATTER IS AMBIGUOUS) !!!
1111 Удаляет определенные пользователем функции @var{f_1}, ..., @var{f_n}.
1112 Аргументы могут быть именами обычных функций, созданных при помощи
1113 @code{:=} или @code{define}, или макро функций, созданных при помощи
1114 @code{::=}.
1116 @code{remfunction (all)} -- удаляет все определенные пользователем
1117 функции.
1119 @code{remfunction} не вычисляет свои аргументы.
1121 @code{remfunction} возвращает список символов, для которых
1122 было удалено определение функции.  Для символов, у которых
1123 не было соответствующих определений функций, возвращается
1124 @code{false}.
1126 Функция @code{remfunction} не применима к функциям массивам и переменным с индексом,
1127 к этим типам функций применима @code{remarray}.
1129 @opencatbox{Категории:}
1130 @category{Определение функций}
1131 @closecatbox
1132 @end deffn
1134 @deffn {Функция} reset ()
1135 Восстанавливает значения по умолчанию для глобальных переменных,
1136 опций и некоторых других переменных.
1138 @code{reset} восстанавливает значения переменных хранящихся в Lisp
1139 списке @code{*variable-initial-values*}.
1140 Lisp макрос @code{defmvar} добавляет переменные в этот список
1141 (вместе с выполнением других действий).  Многие, но не все,
1142 глобальные переменные и опции определены с помощью @code{defmvar};
1143 некоторые, определенные с помощью @code{defmvar} переменные, не
1144 являются глобальными переменными или опциями.
1146 @opencatbox{Категории:}
1147 @category{Управление сессией}
1148 @closecatbox
1149 @end deffn
1151 @defvr {Управляющая переменная} showtime
1152 Значение по умолчанию: @code{false}
1154 Если @code{showtime} равно @code{true} Maxima печатает время
1155 вычисления для каждого результирующего выражения.
1157 Время вычисления всегда запоминается, так что
1158 @code{time} и @code{playback} могут показать
1159 это время даже если @code{showtime} равно @code{false}.
1161 См. также @code{timer}.
1163 @opencatbox{Категории:}
1164 @category{Флаги и переменные вывода}
1165 @category{Отладка}
1166 @closecatbox
1167 @end defvr
1169 @c IS THIS ANY DIFFERENT FROM ASSIGNING A PROPERTY ??
1170 @c THIS REALLY SEEMS LIKE A HACK
1171 @deffn {Функция} sstatus (@var{feature}, @var{package})
1172 Устанавливает статус @var{feature} в @var{package}.
1173 После выполнения @code{sstatus (@var{feature}, @var{package})},
1174 @code{status (@var{feature}, @var{package})} возвращает @code{true}.
1175 Этот механизм может быть полезен при работе с пакетами для того, чтобы
1176 иметь возможность проверять какие опции пакета загружены.
1178 @opencatbox{Категории:}
1179 @category{Факты и выводы}
1180 @closecatbox
1181 @end deffn
1183 @c NEEDS EXPANSION, EXAMPLES
1184 @deffn {Функция} to_lisp ()
1185 Запускает интерпретатор используемой Lisp системы.
1186 Lisp функция @code{(to-maxima)} возвращает на уровень командной
1187 строки Maxima.
1189 @opencatbox{Категории:}
1190 @category{Работа в консоли}
1191 @closecatbox
1192 @end deffn
1194 @anchor{eval_string_lisp}
1195 @deffn {Function} eval_string_lisp (@var{str})
1197 Sequentially read lisp forms from the string @var{str} and evaluate them.
1198 Any values produced from the last form are returned as a Maxima list.
1200 Examples:
1202 @c ===beg===
1203 @c eval_string_lisp ("");
1204 @c eval_string_lisp ("(values)");
1205 @c eval_string_lisp ("69");
1206 @c eval_string_lisp ("1 2 3");
1207 @c eval_string_lisp ("(values 1 2 3)");
1208 @c eval_string_lisp ("(defun $foo (x) (* 2 x))");
1209 @c foo (5);
1210 @c ===end===
1211 @example
1212 @group
1213 (%i1) eval_string_lisp ("");
1214 (%o1) []
1215 @end group
1216 @group
1217 (%i2) eval_string_lisp ("(values)");
1218 (%o2) []
1219 @end group
1220 @group
1221 (%i3) eval_string_lisp ("69");
1222 (%o3) [69]
1223 @end group
1224 @group
1225 (%i4) eval_string_lisp ("1 2 3");
1226 (%o4) [3]
1227 @end group
1228 @group
1229 (%i5) eval_string_lisp ("(values 1 2 3)");
1230 (%o5) [1,2,3]
1231 @end group
1232 @group
1233 (%i6) eval_string_lisp ("(defun $foo (x) (* 2 x))");
1234 (%o6) [foo]
1235 @end group
1236 @group
1237 (%i7) foo (5);
1238 (%o7) 10
1239 @end group
1240 @end example
1242 See also @ref{eval_string}.
1244 @opencatbox{Категории:}
1245 @category{Debugging}
1246 @category{Evaluation}
1247 @closecatbox
1249 @end deffn
1251 @defvr {Системная переменная} values
1252 Начальное значение: @code{[]}
1254 @code{values} содержит список всех пользовательских переменных, которым
1255 присвоено значение (не Maxima опций и переключателей).
1256 Этот список состоит из символов, которым было присвоено значение при
1257 помощи операторов @code{:}, @code{::} или @code{:=}.
1259 @opencatbox{Категории:}
1260 @category{Вычисление}
1261 @category{Глобальные переменные} 
1262 @closecatbox
1263 @end defvr