标签: common-lisp
想要:如果传递函数或闭包,请调用它,否则返回输入。我试过这个:
{{1}}
获取"未定义的函数:X"。为什么呢?
答案 0 :(得分:5)
if的其他部分不应该包含在parens中。当你在parens中放入一些东西时,它将被视为一个函数调用。要返回值,只需执行
if
(defun ifcall (x) (if (typep x 'FUNCTION) (funcall x) x))