0
我试图做一个功能,将中缀输入更改为前缀,例如:(x + 1)
作为输入输出为(+ x 1)
。Lisp,不在defun工作的说明
所以这是我的时刻代码:
(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语句在主程序中工作,但不是当我运行它从我的功能。
在函数体的周围有多余的括号。 – jkiiski
你是什么意思?你能纠正它吗? –
从第一行'(x)(' - >'(x)''和最后一个关闭部分的末尾删除开头paren。 – jkiiski