我正在尝试制作一个将中缀输入更改为前缀的函数,例如:(x + 1)作为输出为的输入(+ x 1)。
所以这是我目前的代码:
(setq x ’(Y + 1))(if (listp x ) (list (second x) (first x) (first (last x))) x)因此,(+ Y 1)如果我输入列表,则返回;如果用户不是列表,则返回用户输入。
但是,问题是我无法在函数中使用此代码:
(defun prefixToInfix (x)( (if (listp x ) (list (second x) (first x) (first (last x))) x) ) )该函数确实已创建,但是当我调用它时
(prefixtoinfix ’(Y + 1))我得到一个错误
Error: Illegal function object: (IF (LISTP X) (LIST # # #) X).[condition type: TYPE-ERROR]我不知道为什么我的if语句在主程序中起作用,但是当我从函数中运行它时却不起作用。