我的想法是这样的:
(run (long-calculation vars) time-limit)
返回 (long-calculation vars)
的结果,如果达到 time-limit
,则返回 nil
。
最佳答案
如果你能找到 amb
运算符的实现,那么你可以这样做:
(defmacro run (comp time-limit)
`(amb comp
(progn (delay ,time-limit)
nil)))
注意不要将此误认为是 McCarthy amb
运算符。 amb
应该在不同的线程中评估它的两个参数,并选择先完成的那个。例如,在 Haskell 中,它在 Data.Unamb 中描述。 .
关于lisp - CLISP中如何实现限时执行机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7443549/