If statement clisp在中缀、后缀和前缀之间的转换(i';m尝试if语句)

If statement clisp在中缀、后缀和前缀之间的转换(i';m尝试if语句),if-statement,lisp,common-lisp,clisp,If Statement,Lisp,Common Lisp,Clisp,我正在使用CLISP并正在尝试 (if ( = (first '(+ 2 3)) + ) 10 20) //10 and 20 are just placeholders 我正在尝试创建一个在中缀、后缀和前缀之间转换的程序。我相信我的第一步应该是在字符串中查找符号+、-、*、和/。输入中将没有括号。所以,我试图系统地搜索每个符号。我的方法的优点是能够优先考虑*而不是+等 我对我的方法有一个大致的想法,但任何想法都很好。 我的第一个想法是: (append (rest '(+ 2 3)) (li

我正在使用CLISP并正在尝试

(if ( = (first '(+ 2 3)) + ) 10 20) //10 and 20 are just placeholders
我正在尝试创建一个在中缀、后缀和前缀之间转换的程序。我相信我的第一步应该是在字符串中查找符号+、-、*、和/。输入中将没有括号。所以,我试图系统地搜索每个符号。我的方法的优点是能够优先考虑*而不是+等

我对我的方法有一个大致的想法,但任何想法都很好。 我的第一个想法是:

(append (rest '(+ 2 3)) (list (first '(+ 2 3))))

是的,我计划使用递归。

更多的谷歌搜索让我想到了这一点,所以我决定实现“eq”而不是“=”,它的效果与预期一样。

我已经解决了我自己的问题。使用“eq”而不是“=”有帮助。我建议你发布你的答案,并将其标记为已接受。通常,你希望使用EQL而不是eq,除了(极少数)情况下你实际上想要使用eq。