lisp - CLISP中如何实现限时执行机制?

标签 lisp common-lisp clisp

我的想法是这样的:

(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/

相关文章:

common-lisp - 在 Common Lisp 中使用 shell 脚本中的 stdout

LISP 从 for 循环将项目附加到数组

lisp - 使用 asdf :defsystem and quickproject 定义包的正确方法

lisp - SBCL 在 macOS、Linux、FreeBSD 上的路径名通配符约定是什么?

lisp - 使用 SBCL 进行交叉编译

lisp - 类访问器的宏

common-lisp - 带有CLISP和CL-WHO的CGI示例?

linux - 如何在 Redhat Linux 中安装 CLISP

java - 在 Lisp 应用程序创建的 Java 源代码上,从 Common Lisp 应用程序调用 Java 编译器

arrays - Lisp 中如何返回子数组?