学习任何语言都需要一个编译器,common lisp 也不例外,编写common lisp的常用工具是emacs + slime +(任意一种CL实现,常用的有SBCL,cmucl)作为初学这的我们为了方便我直接使用的lispbox,lispbox实际是是emacs+slime+ccl极大的方便了我们这些初学者,大家可以到这里下载http://common-lisp.net/project/lispbox/。
下面我们进入正题:
进入lispbox以后我们可以看到cl-user> 提示我们输入,common lisp 是一种既可以解释运行也可以编译运行的语言,任何lisp系统都有一个可以交互的前端,叫做顶层(toplevel),我们可以在顶层输入common lisp 的表达式,系统则可以给出表达式的值。
common lisp最简单的表达式是
>3
3
>1
1
系统会依次求值并打出提示符提示你的再次输入。
>(+ 1 1)
2
>(+ 2 3)
5
像这种将操作符放在表达式前面的式子叫做S-表达式,这种表达式让我们不再受运算符的优先级的折磨了,可是也有人对于这种含有大量括号的表达式表示反感。有一笑话说苏联的特工偷了美国导弹发射代码的最后一页,他们就向上级报告说:长官我知道他们是用lisp写的代码。长官说为什么啊,他说因为最后一页都是括号。(这个知道用什么语言写的对他们有什么帮助一直没搞懂啊??)
>(+ 1 2 3 4)
10
>(+ 1 2 3)
6
>(+ 1 2)
3
像这样在common lisp中有时候直接增加实参即可。
同样common lisp的表达式也可以嵌套,例如
>(* (+ 1 3) (- 4 2)
8
>(/ (* 2 6) 3)
4
在common lisp中所有的结构大部分都是由S-表达式和列表表达的,没有复杂的结构(括号算吗),函数式编程,元编程。
文中有不对的地方还请大家指正。(十点多了,马上要断网了,所以先就这样吧(^_^))。