【问题标题】:sleep function (sleep for x seconds) (Maxima)睡眠功能(睡眠 x 秒)(Maxima)
【发布时间】:2016-12-19 04:09:34
【问题描述】:

这个函数休眠 x 秒,是否有更好的休眠函数,可能行数更少或使用更少的内存(例如,没有“扩展”行)?

此外,它可能更准确,尽管对于我的需要,准确度就足够了。
编辑:我的主要用途是短暂延迟,以便在创建时在主窗口中查看图像。

我知道'?\*autoconf\-version\*;'可以给出 Maxima 的版本号,所以也许有一些未记录的方式来休眠一段时间。

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 -- 基于 DOE-MACSYMA / 邮件列表的 GPL CAS
https://sourceforge.net/p/maxima/mailman/message/33016361/

【问题讨论】:

    标签: maxima


    【解决方案1】:

    Maxima 是用 lisp 编写的,你可以使用 lisp 命令:

    :lisp (sleep 1)
    

    【讨论】:

    • 我发现 ':lisp (sleep 1)' 可以工作,尽管如果它是第一个输入到控制台的东西,它会挂起状态栏消息:'Reading Maxima output', '?sleep(1 )$'没有这个问题
    猜你喜欢
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 2011-04-08
    • 2011-02-03
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多