Эта функция спит в течение 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/