4 @c OriginalRevision=1.23
5 @c TranslatedBy: (c) 2007-06 Vadim V. Zhytnikov <vvzhyt@gmail.com>
8 * Введение в окружение времени выполнения::
10 * Функции и переменные времени выполнения::
14 @node Введение в окружение времени выполнения, Прерывания, Окружение времени выполнения, Окружение времени выполнения
15 @section Введение в окружение времени выполнения
16 @c THIS DISCUSSION OF maxima-init.mac REPLACES AN EARLIER WRITE-UP. !!!
17 @c HOWEVER IT SEEMS THAT THIS TEXT REALLY WANTS TO BE UNDER A DIFFERENT HEADING. !!!
18 Файл @code{maxima-init.mac} загружается автоматически при каждом запуске Maxima.
19 Можно использовать @code{maxima-init.mac} для настройки своего персонального Maxima окружения.
20 Файл @code{maxima-init.mac} обычно размещается в директории,
21 определяемой переменной @code{maxima_userdir}, хотя может находиться и в любой другой
22 директории, просматриваемой функцией @code{file_search}.
24 Пример содержимого файла @code{maxima-init.mac}:
27 setup_autoload ("specfun.mac", ultraspherical, assoc_legendre_p);
31 Здесь, @code{setup_autoload} заставляет Maxima загружать файл @code{specfun.mac},
32 если функции @code{ultraspherical} или @code{assoc_legendre_p} вызываются,
33 но не определены в момент вызова. При этом нет нужды помнить
34 о необходимости загружать соответствующий файл до вызова данных функций.
36 Команда @code{showtime: all} устанавливает значение переменной @code{showtime}.
37 Файл @code{maxima-init.mac} может содержать любые присваивания и другие команды Maxima.
39 @opencatbox{Категории:}
40 @category{Управление сессией}
43 @node Прерывания, Функции и переменные времени выполнения, Введение в окружение времени выполнения, Окружение времени выполнения
46 Пользователь может остановить длительное вычисление, нажав на ^C (Control-C).
47 По умолчанию, текущее вычисление прекращается и выводится
48 новое приглашение. Невозможно возобновить прерванные вычисления.
50 Если Lisp переменная @code{*debugger-hook*} установлена равной @code{nil}
54 :lisp (setq *debugger-hook* nil)
58 то после получения ^C, Maxima запускает Lisp отладчик,
59 и пользователь может исследовать Lisp окружение.
60 Остановленное вычисление может быть продолжено вводом
61 команды @code{continue} в Lisp отладчике .
62 Способы возврата в Maxima из Lisp отладчика, другие кроме
63 продолжение вычисления до его завершения, различны для разных
66 В системах типа Unix нажатие ^Z (Сontrol-Z) вызывает полную приостановку
67 работы Maxima с возвращением управления в командную строку.
68 Команда @code{fg} вызывает возобновление работы остановленной Maxima
69 с точки, на которой она была остановлена.
71 @c end concepts Runtime Environment
72 @node Функции и переменные времени выполнения, , Прерывания, Окружение времени выполнения
73 @section Функции и переменные времени выполнения
75 @c NEEDS EXPANSION AND CLARIFICATION
76 @defvr {Декларация} feature
77 Maxima понимает два различных типа свойств: системные свойства и свойства,
78 относящиеся к математическим выражениям.
79 См. @code{status} по поводу системных свойств.
80 См. @code{features} и @code{featurep} по поводу математических свойств.
81 @c PROPERTIES, DECLARATIONS FALL UNDER THIS HEADING AS WELL
84 @code{feature} само по себе не является именем функции или переменной.
86 @opencatbox{Категории:}
87 @category{Работа в консоли}
91 @c NEEDS CLARIFICATION, ESPECIALLY WRT THE EXTENT OF THE FEATURE SYSTEM
92 @c (I.E. WHAT KINDS OF THINGS ARE FEATURES ACCORDING TO featurep)
93 @deffn {Функция} featurep (@var{a}, @var{f})
94 Пытается определить имеет ли объект @var{a} свойство @var{f}, используя факты,
95 находящиеся в текущей базе данных. Если да, то возвращается @code{true},
96 иначе возвращается @code{false}.
98 Отметим, что @code{featurep} возвращает @code{false} если даже ни @var{f},
99 ни отрицание @var{f} не могут быть установлены.
101 Функция @code{featurep} вычисляет свои аргументы.
103 См. также @code{declare} и @code{features}.
106 (%i1) declare (j, even)$
107 (%i2) featurep (j, integer);
111 @opencatbox{Категории:}
112 @category{Функции предикаты}
113 @category{Факты и выводы}
117 @anchor{maxima_tempdir}
118 @defvr {Системная переменная} maxima_tempdir
120 Переменная @code{maxima_tempdir} обозначает директорию, в которой Maxima создает некоторые
121 временные файлы. Например, временные файлы с данными для графиков
122 создаются в @code{maxima_tempdir}.
124 Начальное значение @code{maxima_tempdir} является домашней директорией пользователя,
125 если Maxima может ее определить. В противном случае Maxima делает догадку о расположении
126 подходящей директории.
128 Переменной @code{maxima_tempdir} можно присвоить строку с именем директории.
130 @opencatbox{Категории:}
131 @category{Глобальные переменные}
135 @defvr {Системная переменная} maxima_userdir
137 Переменная @code{maxima_userdir} обозначает директорию, в которой Maxima ищет Maxima и Lisp файлы.
138 (Maxima ищет файлы и в некоторых других директориях. Полный список определяется переменными @code{file_search_maxima}
139 и @code{file_search_lisp}.)
141 Начальное значение @code{maxima_userdir} является поддиректорией домашней директории
142 пользователя, если Maxima может определить последнюю. В противном случае Maxima
143 делает догадку о расположении подходящей директории.
145 Переменной @code{maxima_userdir} можно присвоить строку с именем директории.
146 Однако, присваивание нового значения @code{maxima_userdir} не меняет автоматически
147 @code{file_search_maxima} и @code{file_search_lisp}.
148 Значение этих переменных нужно менять отдельно.
150 @opencatbox{Категории:}
151 @category{Глобальные переменные}
155 @deffn {Функция} room ()
156 @deffnx {Функция} room (true)
157 @deffnx {Функция} room (false)
158 Выводит информацию о состоянии использования памяти и стека в Maxima.
159 Команда @code{room} вызывает одноименную Lisp функцию.
163 @code{room ()} выводит описание среднего уровня детализации.
165 @code{room (true)} выводит подробное описание.
167 @code{room (false)} выводит краткое описание.
170 @opencatbox{Категории:}
175 @deffn {Функция} status (feature)
176 @deffnx {Функция} status (feature, @var{putative_feature})
177 @deffnx {Функция} status (status)
178 Возвращает информацию о наличии или отсутствии определенных
179 системно-зависимых свойств.
183 @code{status (feature)} возвращает список системных свойств.
184 Что включает версию Lisp, тип операционной системы и т.д.
185 Этот список может варьироваться от одной версии Lisp к другой.
186 @item @code{status (feature, @var{putative_feature})} возвращает @code{true},
187 если @var{putative_feature} присутствует в списке, возвращаемом @code{status (feature)},
188 и @code{false} в противном случае.
189 Функция @code{status} не вычисляет свои аргументы @var{putative_feature}.
190 Оператор кавычка-кавычка @code{'@w{}'} может быть использован для их вычисления.
191 Свойства, содержащие в именах специальные символы, такие как тире, могут задаваться
192 в форме строки. Например,@code{status (feature, "ansi-cl")}.
194 @code{status (status)} возвращает двухэлементный список @code{[feature, status]}.
195 @code{feature} и @code{status} являются двумя аргументами, принимаемыми функцией @code{status}.
196 Не ясно, имеет ли этот список какое-либо иное значение.
199 Переменная @code{features} содержит список свойств, применимых к математическим
200 выражениям. См. @code{features} и @code{featurep} по поводу дополнительной информации.
202 @opencatbox{Категории:}
203 @category{Программирование}
207 @deffn {Функция} time (%o1, %o2, %o3, ...)
208 Возвращает список времен, в секундах, вычисления результирующих выражений @code{%o1}, @code{%o2}, @code{%o3}, ... .
209 Время является внутренним временем вычисления Maxima, а не временем, прошедшим по реальным часам.
210 Функция @code{time} применима только к меткам результирующих выражений, для других переменных
211 @code{time} возвращает @code{unknown}.
213 Установка @code{showtime: true} заставляет Maxima печатать внутренее время вычисления и время по реальным
214 часам для каждого результата.
216 @opencatbox{Категории:}
221 @deffn {Функция} timedate ()
222 Возвращает строку, содержащую текущее время и дату.
223 Строка имеет формат @code{HH:MM:SS Day, mm/dd/yyyy (GMT-n)}, где поля есть
224 часы, минуты, секунды, день недели, месяц, день месяца, год и сдвиг часового пояса от GMT
225 (Стандартное время по Гринвичу).
231 @c print ("timedate reports current time", d)$
234 (%i1) d: timedate ();
235 (%o1) 08:05:09 Wed, 11/02/2005 (GMT-7)
236 (%i2) print ("timedate reports current time", d)$
237 timedate reports current time 08:05:09 Wed, 11/02/2005 (GMT-7)
240 @opencatbox{Категории:}
241 @category{Функции времени и даты}
245 @deffn {Функция} absolute_real_time ()
247 Возвращает число секунд, истекших с полуночи 1 января 1900 года по Универсальному Координированному Времени (UTC).
248 Значение является целым числом.
250 См. также @code{elapsed_real_time} и @code{elapsed_run_time}.
255 @c absolute_real_time ();
256 @c 1900 + absolute_real_time () / (365.25 * 24 * 3600);
259 (%i1) absolute_real_time ();
261 (%i2) 1900 + absolute_real_time () / (365.25 * 24 * 3600);
262 (%o2) 2007.265612087104
265 @opencatbox{Категории:}
266 @category{Функции времени и даты}
270 @deffn {Функция} elapsed_real_time ()
272 Возвращает число секунд (включая доли секунды), истекших с последнего запуска или перезапуска Maxima
274 Значение является числом с плавающей точкой.
276 См. также @code{absolute_real_time} и @code{elapsed_run_time}.
281 @c elapsed_real_time ();
282 @c expand ((a + b)^500)$
283 @c elapsed_real_time ();
286 (%i1) elapsed_real_time ();
288 (%i2) expand ((a + b)^500)$
289 (%i3) elapsed_real_time ();
293 @opencatbox{Категории:}
294 @category{Функции времени и даты}
298 @deffn {Функция} elapsed_run_time ()
300 Возвращает число секунд (включая доли секунды), истекших с последнего запуска или перезапуска Maxima
301 по внутренним часам Maxima.
302 Значение является числом с плавающей точкой.
304 См. также @code{absolute_real_time} и @code{elapsed_real_time}.
309 @c elapsed_run_time ();
310 @c expand ((a + b)^500)$
311 @c elapsed_run_time ();
314 (%i1) elapsed_run_time ();
316 (%i2) expand ((a + b)^500)$
317 (%i3) elapsed_run_time ();
321 @opencatbox{Категории:}
322 @category{Функции времени и даты}