Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Common lisp 调用作为参数传递的函数_Common Lisp - Fatal编程技术网

Common lisp 调用作为参数传递的函数

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部分不应该

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部分不应该用paren包装。当您将某些内容放入parens中时,它将被视为函数调用。要返回值,只需执行以下操作