Print a warning when translating subscripted functions
[maxima.git] / doc / info / ru / Miscellaneous.texi
blob7cf4729a72fc75671f4172ba47956813fc16ef85
1 @c Language=Russian
2 @c Encoding=UTF-8
3 @c File=Miscellaneous.texi 
4 @c OriginalRevision=1.25
5 @c TranslatedBy: (c) 2007-06 Vadim V. Zhytnikov <vvzhyt@gmail.com>
7 @menu
8 * Введение в вспомогательные опции::  
9 * Библиотека Share::                       
10 * Вспомогательные функции и переменные::  
11 @end menu
13 @node Введение в вспомогательные опции, Библиотека Share, Вспомогательные опции, Вспомогательные опции
14 @section Введение в вспомогательные опции
16 В этом разделе обсуждаются различные опции, имеющие глобальное влияние на 
17 работу Maxima.  Также описываются различные системные списки, такие как 
18 список всех определенных пользователем функций.
20 @node Библиотека Share, Вспомогательные функции и переменные, Введение в вспомогательные опции, Вспомогательные опции
21 @section Библиотека Share
23 Maxima директория "share" содержит программы и другие полезные для
24 пользователей Maxima файлы, не входящие в ядро системы. 
25 Обычно, эти программы загружаются с помощью команд @code{load} или @code{setup_autoload}.
27 @code{:lisp *maxima-sharedir*} указывает расположение директории "share"
28 в файловой системе.
30 @c FIXME FIXME FIXME -- WE REALLY NEED AN UP-TO-DATE LIST OF SHARE PACKAGES !!
31 Команда @code{printfile ("share.usg")} печатает устаревший список пакетов share.
32 Возможно, более информативным будет просмотр этой директории при помощи 
33 обычного файл-менеджера.
36 @node Вспомогательные функции и переменные,  , Библиотека Share, Вспомогательные опции
37 @section Вспомогательные функции и переменные
39 @defvr {Системная переменная} aliases
40 Значение по умолчанию: @code{[]}
42 @code{aliases} -- список всех атомов, котрые имеют определенные пользователем алиасы (определяются
43 функциями @code{alias}, @code{ordergreat}, @code{orderless} или при декларации атома @code{noun} 
44 при помощи @code{declare}).
46 @opencatbox{Категории:}
47 @category{Факты и выводы}
48 @category{Глобальные переменные}
49 @closecatbox
50 @end defvr
53 @defvr {Декларация} alphabetic
54 @code{alphabetic} является декларацией типа, распознаваемой функцией @code{declare}.
55 Декларация @code{declare(@var{s}, alphabetic)} говорит Maxima рассматривать все 
56 символы, входящие в @var{s} (должен быть строкой), как буквенные.
58 См. также @ref{Идентификаторы}.
60 Пример:
62 @c ===beg===
63 @c xx\~yy\`\@ : 1729;
64 @c declare ("~`@", alphabetic);
65 @c xx~yy`@ + @yy`xx + `xx@@yy~;
66 @c listofvars (%);
67 @c ===end===
68 @example
69 (%i1) xx\~yy\`\@@ : 1729;
70 (%o1)                         1729
71 (%i2) declare ("~`@@", alphabetic);
72 (%o2)                         done
73 (%i3) xx~yy`@@ + @@yy`xx + `xx@@@@yy~;
74 (%o3)               `xx@@@@yy~ + @@yy`xx + 1729
75 (%i4) listofvars (%);
76 (%o4)                  [@@yy`xx, `xx@@@@yy~]
77 @end example
80 @opencatbox{Категории:}
81 @category{Факты и выводы}
82 @closecatbox
83 @end defvr
85 @c REPHRASE
86 @c DOES apropos RETURN THE SAME THING AS THE LIST SHOWN BY describe ??
87 @deffn {Функция} apropos (@var{string})
88 Ищет имена объектов  Maxima, содержащие @var{string} в качестве подстроки.  
89 Например, вызов @code{apropos (exp)} возвращает список всех переменных и функций,
90 имеющих @code{exp} в качестве части своего имени, такие как @code{expand},
91 @code{exp} и @code{exponentialize}. Таким образом, если вы помните только часть имени
92 какого-либо объекта, то можете использовать эту команду для поиска полного
93 наименования.
94 Аналогично, можно использовать @code{apropos (tr_)}, для того, чтобы вывести 
95 список переключателей, влияющих на работу транслятора, т.к. 
96 имена большинства из них начинаются с @code{tr_}.
98 @opencatbox{Категории:}
99 @category{Справка}
100 @closecatbox
101 @end deffn
103 @deffn {Функция} args (@var{expr})
104 Возвращает список аргументов параметра @code{expr}, который может быть
105 любым отличным от атома выражением.
106 Возвращаются только аргументы оператора самого верхнего уровня.
107 Подвыражения @code{expr} появляются, как элементы подвыражений элементов
108 списка аргументов.
110 Порядок выражений в возвращаемом списке может зависеть от глобального флага @code{inflag}.
112 Вызов @code{args (@var{expr})} эквивалентен @code{substpart ("[", @var{expr}, 0)}.
113 См. также @code{substpart} и @code{op}.
115 @c NEEDS EXAMPLES
116 @opencatbox{Категории:}
117 @category{Выражения}
118 @closecatbox
119 @end deffn
121 @defvr {Управляющая переменная} genindex
122 Значение по умолчанию: @code{i}
124 @code{genindex} -- буквенный префикс, используемый для создания
125 новой переменной суммирования.
127 @opencatbox{Категории:}
128 @category{Суммы и произведения}
129 @closecatbox
130 @end defvr
132 @defvr {Управляющая переменная} gensumnum
133 Значение по умолчанию: 0
135 @code{gensumnum} -- числовой суффикс, используемый для создания новой переменной суммирования.  
136 Если равна @code{false}, то индекс будет состоять только из @code{genindex} 
137 без числового суффикса.
139 @opencatbox{Категории:}
140 @category{Суммы и произведения}
141 @closecatbox
142 @end defvr
144 @defvr {Системная переменная} infolists
145 Значение по умолчанию: @code{[]}
147 @code{infolists} -- есть список имен всех информационных списков Maxima. 
148 А именно:
150 @table @code
151 @item labels
152 Все имеющие значение @code{%i}, @code{%o} и @code{%t} метки.
153 @item values
154 Все имеющие значение атомы, определенные пользователем (не встроенные в Maxima
155 управляющие переменные и переключатели), созданные при помощи операторов @code{:}, @code{::}
156 или функциональным присваиванием.
157 @c WHAT IS INTENDED BY "FUNCTIONAL BINDING" HERE ??
158 @item functions
159 Все определенные пользователем функции, созданные при помощи @code{:=} или @code{define}.
160 @item arrays
161 Все объявленные и необъявленные массивы, созданные при помощи @code{:}, @code{::} или @code{:=}.
162 @c AREN'T THERE OTHER MEANS OF CREATING ARRAYS ??
163 @item macros
164 Все определенные пользователем макро-функции.
165 @item myoptions
166 Все управляющие переменные, значение которых было изменено
167 пользователем, независимо от того, имеют ли они в данный момент значения
168 по умолчанию или нет.
169 @item rules
170 Все определенные пользователем правила подстановок и правила упрощения, 
171 созданные при помощи @code{tellsimp}, @code{tellsimpafter}, @code{defmatch} или @code{defrule}.
172 @item aliases
173 Все атомы, имеющие определенные пользователем алиасы, созданные при помощи функций @code{alias},
174 @code{ordergreat}, @code{orderless} или при декларации атома @code{noun} с помощью @code{declare}.
175 @item dependencies
176 Все атомы, имеющие функциональные зависимости, созданные с помощью функций 
177 @code{depends} или @code{gradef}.
178 @item gradefs
179 Все функции, имеющие определенные пользователем производные, определенные при помощи функции
180 @code{gradef}.
181 @c UMM, WE REALLY NEED TO BE SPECIFIC -- WHAT DOES "ETC" CONTAIN HERE ??
182 @item props
183 Все атомы, имеющие свойства, отличные от упомянутых выше, такие как свойства
184 задаваемые @code{atvalue}, @code{matchdeclare} и т.п.,
185 а также, свойства, установленные функцией @code{declare}.
186 @item let_rule_packages
187 Все определенные пользователем пакеты правил @code{let} плюс специальный
188 пакет @code{default_let_rule_package}.
189 (@code{default_let_rule_package} -- имя пакета правил, который используется по умолчанию,
190 если иной не объявлен пользователем явно.)
191 @end table
193 @opencatbox{Категории:}
194 @category{Факты и выводы}
195 @category{Глобальные переменные}
196 @closecatbox
197 @end defvr
199 @deffn {Функция} integerp (@var{expr})
200 Возвращает @code{true}, если @var{expr} является буквальным целым числом, 
201 и @code{false} в противном случае.
203 Функция @code{integerp} возвращает @code{false}, если аргумент является символом,
204 даже если этот символ объявлен целочисленным.
206 Примеры:
208 @example
209 (%i1) integerp (0);
210 (%o1)                         true
211 (%i2) integerp (1);
212 (%o2)                         true
213 (%i3) integerp (-17);
214 (%o3)                         true
215 (%i4) integerp (0.0);
216 (%o4)                         false
217 (%i5) integerp (1.0);
218 (%o5)                         false
219 (%i6) integerp (%pi);
220 (%o6)                         false
221 (%i7) integerp (n);
222 (%o7)                         false
223 (%i8) declare (n, integer);
224 (%o8)                         done
225 (%i9) integerp (n);
226 (%o9)                         false
227 @end example
229 @opencatbox{Категории:}
230 @category{Функции предикаты}
231 @closecatbox
232 @end deffn
234 @defvr {Управляющая переменная} m1pbranch
235 Значение по умолчанию: @code{false}
237 @code{m1pbranch} определяет главную ветвь для отрицательной степени @code{-1}.
238 Величины, подобные @code{(-1)^(1/3)} (т.е. "нечетные" рациональные степени) и 
239 @code{(-1)^(1/4)} (т.е. "четные" рациональные степени) 
240 определяются следующим образом:
242 @c REDRAW THIS AS A TABLE
243 @example
244               domain:real
245                             
246 (-1)^(1/3):      -1         
247 (-1)^(1/4):   (-1)^(1/4)   
249              domain:complex              
250 m1pbranch:false          m1pbranch:true
251 (-1)^(1/3)               1/2+%i*sqrt(3)/2
252 (-1)^(1/4)              sqrt(2)/2+%i*sqrt(2)/2
253 @end example
255 @opencatbox{Категории:}
256 @category{Выражения}
257 @category{Глобальные флаги}
258 @closecatbox
259 @end defvr
261 @deffn {Функция} numberp (@var{expr})
262 Возвращает @code{true}, если @var{expr} есть буквальное целое число, рациональное число, 
263 число с плавающей точкой или число с плавающей точкой высокой точности, 
264 иначе возвращается @code{false}.
266 Функция @code{numberp} возвращает @code{false}, если параметр является символом,
267 даже если он является символическим числом, таким как @code{%pi} или @code{%i},
268 или объявлен @code{even}, @code{odd}, @code{integer}, @code{rational}, @code{irrational}, 
269 @code{real}, @code{imaginary} или @code{complex}.
271 Примеры:
273 @example
274 (%i1) numberp (42);
275 (%o1)                         true
276 (%i2) numberp (-13/19);
277 (%o2)                         true
278 (%i3) numberp (3.14159);
279 (%o3)                         true
280 (%i4) numberp (-1729b-4);
281 (%o4)                         true
282 (%i5) map (numberp, [%e, %pi, %i, %phi, inf, minf]);
283 (%o5)      [false, false, false, false, false, false]
284 (%i6) declare (a, even, b, odd, c, integer, d, rational,
285      e, irrational, f, real, g, imaginary, h, complex);
286 (%o6)                         done
287 (%i7) map (numberp, [a, b, c, d, e, f, g, h]);
288 (%o7) [false, false, false, false, false, false, false, false]
289 @end example
291 @opencatbox{Категории:}
292 @category{Функции предикаты}
293 @closecatbox
294 @end deffn
296 @c CROSS REF TO WHICH FUNCTION OR FUNCTIONS ESTABLISH PROPERTIES !! (VERY IMPORTANT)
297 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
298 @deffn {Функция} properties (@var{a})
299 Возвращает список имен всех свойств, ассоциированных
300 с атомом @var{a}.
302 @opencatbox{Категории:}
303 @category{Факты и выводы}
304 @closecatbox
305 @end deffn
307 @c CROSS REF TO WHICH FUNCTION OR FUNCTIONS ESTABLISH PROPERTIES !! (VERY IMPORTANT)
308 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
309 @c WHAT IS HIDDEN IN THE "etc" HERE ??
310 @defvr {Специальный символ} props
311 @code{props} -- список атомов, имеющих свойства отличные от тех, что явно 
312 перечислены в @code{infolists}, такие как, свойства, задаваемые @code{atvalue}, 
313 @code{matchdeclare} и т.п., а также свойства, задаваемые функцией @code{declare}.
315 @opencatbox{Категории:}
316 @category{Факты и выводы}
317 @category{Глобальные переменные} 
318 @closecatbox
319 @end defvr
321 @c CROSS REF TO WHICH FUNCTION OR FUNCTIONS ESTABLISH PROPERTIES !! (VERY IMPORTANT)
322 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
323 @deffn {Функция} propvars (@var{prop})
324 Возвращает список атомов из списка @code{props}, которые имеют 
325 свойство, обозначаемое @var{prop}.  Т.е. @code{propvars (atvalue)}
326 возвращает список атомов, имеющих свойство @code{atvalue}.
328 @opencatbox{Категории:}
329 @category{Факты и выводы}
330 @closecatbox
331 @end deffn
333 @c CROSS REF TO OTHER FUNCTIONS WHICH PUT/GET PROPERTIES !! (VERY IMPORTANT)
334 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
335 @c ARE PROPERTIES ESTABLISHED BY put THE SAME AS PROPERTIES ESTABLISHED BY declare OR OTHER FUNCTIONS ??
336 @c IS put (foo, true, integer) EQUIVALENT TO declare (foo, integer) FOR EXAMPLE ??
337 @deffn {Функция} put (@var{atom}, @var{value}, @var{indicator})
338 Присваивает атому @var{atom} значение  свойства @var{indicator}, равное @var{value}.
339 @var{indicator} может быть не только системным свойством, но любым другим именем
340 свойства.
342 Функция @code{put} вычисляет свои аргументы. 
343 @code{put} возвращает @var{value}.
345 Примеры:
347 @example
348 (%i1) put (foo, (a+b)^5, expr);
349                                    5
350 (%o1)                       (b + a)
351 (%i2) put (foo, "Hello", str);
352 (%o2)                         Hello
353 (%i3) properties (foo);
354 (%o3)            [[user properties, str, expr]]
355 (%i4) get (foo, expr);
356                                    5
357 (%o4)                       (b + a)
358 (%i5) get (foo, str);
359 (%o5)                         Hello
360 @end example
362 @opencatbox{Категории:}
363 @category{Факты и выводы}
364 @closecatbox
365 @end deffn
367 @deffn {Функция} qput (@var{atom}, @var{value}, @var{indicator})
368 Присваивает атому @var{atom} значение  свойства @var{indicator}, равное @var{value}.
369 Аналогично @code{put}, но не вычисляет свои аргументы.
371 Примеры:
373 @example
374 (%i1) foo: aa$ 
375 (%i2) bar: bb$
376 (%i3) baz: cc$
377 (%i4) put (foo, bar, baz);
378 (%o4)                          bb
379 (%i5) properties (aa);
380 (%o5)                [[user properties, cc]]
381 (%i6) get (aa, cc);
382 (%o6)                          bb
383 (%i7) qput (foo, bar, baz);
384 (%o7)                          bar
385 (%i8) properties (foo);
386 (%o8)            [value, [user properties, baz]]
387 (%i9) get ('foo, 'baz);
388 (%o9)                          bar
389 @end example
391 @opencatbox{Категории:}
392 @category{Факты и выводы}
393 @closecatbox
394 @end deffn
396 @c CROSS REF TO OTHER FUNCTIONS WHICH PUT/GET PROPERTIES !! (VERY IMPORTANT)
397 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
398 @c HOW DOES THIS INTERACT WITH declare OR OTHER PROPERTY-ESTABLISHING FUNCTIONS ??
399 @c HOW IS THIS DIFFERENT FROM remove ??
400 @deffn {Функция} rem (@var{atom}, @var{indicator})
401 Удаляет свойство @var{indicator} у атома @var{atom}.
403 @opencatbox{Категории:}
404 @category{Факты и выводы}
405 @closecatbox
406 @end deffn
408 @c CROSS REF TO OTHER FUNCTIONS WHICH PUT/GET PROPERTIES !! (VERY IMPORTANT)
409 @c NEEDS EXPANSION, CLARIFICATION, AND EXAMPLES
410 @c HOW DOES THIS INTERACT WITH declare OR OTHER PROPERTY-ESTABLISHING FUNCTIONS ??
411 @c HOW IS THIS DIFFERENT FROM rem ??
412 @deffn {Функция} remove (@var{a_1}, @var{p_1}, ..., @var{a_n}, @var{p_n})
413 @deffnx {Функция} remove ([@var{a_1}, ..., @var{a_m}], [@var{p_1}, ..., @var{p_n}], ...)
414 @deffnx {Функция} remove ("@var{a}", operator)
415 @deffnx {Функция} remove (@var{a}, transfun)
416 @deffnx {Функция} remove (all, @var{p})
417 Удаляет свойства, ассоциированные с атомами.
419 Вызов @code{remove (@var{a_1}, @var{p_1}, ..., @var{a_n}, @var{p_n})}
420 удаляет свойство @code{p_k} у атома @code{a_k}.
422 Вызов @code{remove ([@var{a_1}, ..., @var{a_m}], [@var{p_1}, ..., @var{p_n}], ...)}
423 удаляет свойства @code{@var{p_1}, ..., @var{p_n}}
424 у атомов @var{a_1}, ..., @var{a_m}.
425 Может быть более чем одна пара списков.
427 @c VERIFY THAT THIS WORKS AS ADVERTISED
428 Вызов @code{remove (all, @var{p})} удаляет все свойства @var{p} у всех имеющих его атомов.
430 @c SHOULD REFER TO A LIST OF ALL SYSTEM-DEFINED PROPERTIES HERE.
431 Удаляемые свойства могут быть как системными, такими как 
432 @code{function}, @code{macro} или @code{mode_declare}, так и пользовательскими.
434 @c VERIFY THAT THIS WORKS AS ADVERTISED
435 @c IS transfun PECULIAR TO remove ?? IF SO, SHOW SPECIAL CASE AS @defunx
436 Удаление свойства @code{transfun} удаляет транслированный Lisp вариант функции.
437 После удаления этого свойства, вместо транслированной Lisp версии функции будет 
438 выполняться Maxima версия.
440 Вызов @code{remove ("@var{a}", operator)} или, эквивалентно, @code{remove ("@var{a}", op)},
441 удаляет у @var{a} операторные свойства, декларированные функциями @code{prefix}, @code{infix}, 
442 @code{nary}, @code{postfix}, @code{matchfix} или @code{nofix}.
443 Отметим, что имя оператора должно быть записано в виде строки с двойными кавычками.
445 @code{remove} всегда возвращает @code{done}, независимо от того, имел ли атом  
446 требуемое свойство или нет.
447 Такое поведение отличается от более специфичных функций, удаляющих свойства, таких как 
448 @code{remvalue}, @code{remarray}, @code{remfunction} и @code{remrule}.
450 @c IN SERIOUS NEED OF EXAMPLES HERE
451 @opencatbox{Категории:}
452 @category{Факты и выводы}
453 @closecatbox
454 @end deffn
456 @c NEEDS EXAMPLES
457 @deffn {Функция} remvalue (@var{name_1}, ..., @var{name_n})
458 @deffnx {Функция} remvalue (all)
459 Удаляет из системы значения пользовательских переменных @var{name_1}, ..., @var{name_n}
460 (могут быть переменными с индексом).
462 Вызов @code{remvalue (all)} удаляет все значения всех переменных из списка определенных
463 пользователем переменных @code{values} (в отличии от переменных, автоматически определенных
464 Maxima).
466 См. также @code{values}.
468 @opencatbox{Категории:}
469 @category{Вычисление}
470 @closecatbox
471 @end deffn
473 @c NEEDS EXAMPLES
474 @deffn {Функция} rncombine (@var{expr})
475 Преобразует выражение @var{expr}, комбинируя слагаемые @var{expr}, имеющие
476 одинаковые знаменатели или знаменатели отличающиеся только на числовой множитель.
477 Это поведение несколько отличается от поведения функции @code{combine}, 
478 которая собирает члены с идентичными знаменателями.
480 Устанавливая @code{pfeformat: true} и используя @code{combine}, можно получить результат
481 более компактный, чем дает @code{rncombine}, но @code{rncombine} выполняет
482 дополнительный шаг, перемножая численные множители знаменателей.
483 Это приводит к более ясной форме и возможности распознать сокращения.
485 Команда @code{load("rncomb")} загружает эту функцию.
487 @opencatbox{Категории:}
488 @category{Выражения}
489 @closecatbox
490 @end deffn
492 @c NEEDS CLARIFICATION AND EXAMPLES
493 @deffn {Функция} scalarp (@var{expr})
494 Возвращает @code{true} если @var{expr} является числом, константой или переменной,
495 объявленной @code{scalar} при помощи @code{declare}, или выражением, полностью состоящим
496 из чисел, констант и скалярных переменных, но не содержащим матрицы или списки.
498 @opencatbox{Категории:}
499 @category{Функции предикаты}
500 @category{Векторы}
501 @category{Матрицы}
502 @closecatbox
503 @end deffn
505 @deffn {Функция} setup_autoload (@var{filename}, @var{function_1}, ..., @var{function_n})
506 Определяет то, что если любая из функций @var{function_1}, ..., @var{function_n} 
507 вызывается, но еще не определена в момент вызова, то файл @var{filename} загружается 
508 при помощи @code{load}.
509 Файл @var{filename} обычно содержит определения указанных функций,
510 хотя это и не обязательно.
512 @code{setup_autoload} не работает для функций-массивов.
514 @code{setup_autoload} не вычисляет свои аргументы.
516 Примеры:
518 @c EXAMPLE GENERATED FROM FOLLOWING INPUT
519 @c legendre_p (1, %pi);
520 @c setup_autoload ("specfun.mac", legendre_p, ultraspherical);
521 @c ultraspherical (2, 1/2, %pi);
522 @c legendre_p (1, %pi);
523 @c legendre_q (1, %pi);
524 @example
525 (%i1) legendre_p (1, %pi);
526 (%o1)                  legendre_p(1, %pi)
527 (%i2) setup_autoload ("specfun.mac", legendre_p, ultraspherical);
528 (%o2)                         done
529 (%i3) ultraspherical (2, 1/2, %pi);
530 Warning - you are redefining the Macsyma function ultraspherical
531 Warning - you are redefining the Macsyma function legendre_p
532                             2
533                  3 (%pi - 1)
534 (%o3)            ------------ + 3 (%pi - 1) + 1
535                       2
536 (%i4) legendre_p (1, %pi);
537 (%o4)                          %pi
538 (%i5) legendre_q (1, %pi);
539                               %pi + 1
540                       %pi log(-------)
541                               1 - %pi
542 (%o5)                 ---------------- - 1
543                              2
544 @end example
546 @opencatbox{Категории:}
547 @category{Определение функций}
548 @category{Ввод файлов}
549 @closecatbox
550 @end deffn