функция сна (сон в течение x секунд) (Maxima)

Эта функция спит в течение x секунд, есть ли лучшая функция сна, возможно, в меньшем количестве строк или которая использует меньше памяти (например, без строки «расширить»)?

Кроме того, это могло бы быть более точным, хотя для моих нужд точности достаточно.
РЕДАКТИРОВАТЬ: Мое основное использование - небольшая задержка для просмотра изображений в главном окне по мере их создания.

Я знаю, что '?\*autoconf\-версия\*;' могу дать номер версии Максимы, так что возможно есть какой-то недокументированный способ заснуть на заданный период времени.

sleep(x) := for i : 1 do
(
if (i = 1) then (t:elapsed_real_time()),
if (elapsed_real_time() - t >= x) then return(),
expand ((a + b)^500)
)$

для проверки функции сна:

print(0, timedate())$
sleep(1)$
print(1, timedate())$
sleep(2)$
print(2, timedate())$
sleep(3)$
print(3, timedate())$
sleep(4)$
print(4, timedate())$
sleep(5)$
print(5, timedate())$

РЕДАКТИРОВАТЬ 2: некоторый полезный код (исходная проблема решена)

:lisp (sleep 1)
?sleep(1)$
?sleep(1);
sleep(x) := ?sleep(x);

РЕДАКТИРОВАТЬ 3: некоторые полезные ссылки

[Lisp и Maxima]
Руководство для Maxima 5.39.0: 37. Ход программы
http://maxima.sourceforge.net/docs/manual/maxima_37.html

[Как подавить вывод функции lisp]
Maxima -- GPL CAS на основе DOE-MACSYMA/списков рассылки
https://sourceforge.net/p/maxima/mailman/message/33016361/


person vafylec    schedule 19.12.2016    source источник


Ответы (1)


Maxima написана на лиспе, вы можете использовать лисп-команду:

:lisp (sleep 1)
person Fermat65537    schedule 19.12.2016
comment
Я обнаружил, что ':lisp (sleep 1)' работает, хотя, если это первое, что вводится в консоль, оно зависает с сообщением в строке состояния: 'Reading Maxima output', '?sleep(1)$' не имеет этого проблема - person vafylec; 19.12.2016