mat*_*jch 5 lisp clisp common-lisp
我的想法是这样的:
(run (long-calculation vars) time-limit)
Run Code Online (Sandbox Code Playgroud)
返回结果(long-calculation vars)或nil如果time-limit到达.
如果您可以找到该运算符的实现amb,那么您可以执行以下操作:
(defmacro run (comp time-limit)
`(amb comp
(progn (delay ,time-limit)
nil)))
Run Code Online (Sandbox Code Playgroud)
请小心,不要将其与 McCarthyamb运算符混淆。amb应该在单独的线程中评估它的两个参数,并选择先完成的那个。例如,在 Haskell 中,它在Data.Unamb中进行了描述。
| 归档时间: |
|
| 查看次数: |
331 次 |
| 最近记录: |