Common lisp 调用作为参数传递的函数
Want:如果传递了函数或闭包,则调用它,否则返回输入。我正在尝试这个:Common lisp 调用作为参数传递的函数,common-lisp,Common Lisp,Want:如果传递了函数或闭包,则调用它,否则返回输入。我正在尝试这个: (defun ifcall (x) (if (typep x 'FUNCTION) (funcall x) (x))) (defun ifcall (x) (if (typep x 'FUNCTION) (funcall x) x)) 得到“未定义函数:X”。为什么?您的if的其他部分不应该用paren包装。当您将某些内容放入parens中时,它将被视为函数调用。要返回值,只需执行以下操作 您的if的else部分不应该
(defun ifcall (x) (if (typep x 'FUNCTION) (funcall x) (x)))
(defun ifcall (x) (if (typep x 'FUNCTION) (funcall x) x))
得到“未定义函数:X”。为什么?您的
if
的其他部分不应该用paren包装。当您将某些内容放入parens中时,它将被视为函数调用。要返回值,只需执行以下操作
您的
if
的else部分不应该用paren包装。当您将某些内容放入parens中时,它将被视为函数调用。要返回值,只需执行以下操作