【发布时间】:2010-12-10 05:45:00
【问题描述】:
我正在尝试将一个函数作为参数传递并在另一个函数中调用该函数。
我的一段代码如下所示:
(defun getmove(strategy player board printflag)
(setq move (funcall strategy player board))
(if printflag
(printboard board))
策略作为符号传递,在二维列表中表示为诸如“随机策略”之类的东西
我不断收到错误: "FUNCALL: 'RANDOMSTRATEGY 不是函数名;请尝试使用符号...
当我用 'randomstrategy 替换策略时,它工作正常。 我也可以独立调用随机策略。 有什么问题?
【问题讨论】:
-
另外 move 不是一个定义的变量 'randomstrategy 是一个列表:(引用 randomstrategy),你不能调用那个列表。
-
您的缩进具有误导性,并且您的括号显然不平衡。我怀疑 SETQ 的使用是这里的代码异味。您还应该说明您打算如何调用此函数。
标签: lisp common-lisp