【发布时间】:2015-11-30 16:43:38
【问题描述】:
我一直在寻找一种在 lisp 上 X 秒后停止函数的方法,但我没有找到任何东西,也不知道该怎么做。
它用于在俄罗斯方块游戏的函数上寻找启发式权重,如果权重不好,程序将运行超过 30 秒,我不希望这样。请问大家有什么想法吗?
【问题讨论】:
-
对此有答案,但它们不能移植; Common Lisp 标准不包括多处理/线程/等概念。你用clisp标记了这个问题;你在使用 CLISP 实现吗?还是其他一些实现?也就是说,bordeaux-threads 在某些实现线程 API 上提供了一个兼容层。一旦你有一些多线程工作,你可能会发现Common Lisp Timer 的答案很有用。
-
虽然这些链接很有用,但我真的喜欢Vatine's answer。
-
如果我的猜测是正确的,那么这个问题的背景是一个人工智能 (AI) 项目,其中有一个锦标赛来积极增加最佳项目的等级。为每次比赛期间调用的函数提供了一个超时(查找最佳移动、解决方案等),超时后将取消该项目的比赛资格。
标签: lisp common-lisp clisp