在中缀,后缀,前缀之间转换clisp(我正在尝试if语句)

时间:2012-05-07 19:20:28

标签: if-statement lisp common-lisp clisp

我正在使用CLISP并且正在尝试

(if ( = (first '(+ 2 3)) + ) 10 20) //10 and 20 are just placeholders

我正在尝试创建一个在中缀,后缀和前缀之间进行转换的程序。我相信我的第一步应该是在字符串中找到符号+, - ,*和/。输入中没有括号。所以,我试图系统地搜索每个符号。我的方法的优点是能够优先考虑* over + etc。

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

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

是的,我打算使用递归。

1 个答案:

答案 0 :(得分:0)

更多谷歌搜索带我到What's the difference between eq, eql, equal, and equalp in Common Lisp?所以我决定实施“eq”而不是“=”,它的效果与预期的一样。