首页 > Lisp > Common Lisp笔记-1.Lisp环境搭建

Common Lisp笔记-1.Lisp环境搭建

2009年11月13日 duo 发表评论 阅读评论

很早就想学习Lisp语言,因为它的高深神秘,感觉Lisp之于其它编程语言就像TAOCP之于其它算法书一样。网上找了很多介绍文章和电子书来看,不过一上来就被什么atom,list等概念弄晕了,甚至还听说lisp程序代码本身就是数据结构,可以被操作的说法,立刻换Tab去看娱乐八卦文章去了。

不过最近读传奇程序员的八卦访谈合集《Coders at Work》, 发现这个采访者写过一本《Practical Common Lisp》,官网可以免费看,发现确实写的好,至少让我能看下去。就把读这本书的笔记整理下,记录下整个过程的困惑疑问,以及开窍的过程。

首先得有个Lisp环境,这个简单,作者Peter Seibel在官网上附上了一个地址, 本质上就是个Emacs加Slime,加一些书上要用到的代码宏库什么的集成环境。不过我没用这个,我用的是单纯的Lisp in a box。如果你用Windows系统,最简单了,先下载安装base installer,再下载安装CLISP module,然后开始菜单就能看到安好了,点击就能用了。若是Linux,如果安了emacs,需要安装lisp(我是ubuntu下apt-get install cmucl)和SLIME,如果不习惯emacs,可以找找别的lisp编程环境,我就没经验了,具体怎么下载安装配置我就不细说了。一切就绪后,在emacs里 Alt+x 输入 slime,就启动了lisp环境。

其实linux下最简单的方法是安装lisp之后,直接在terminal输入lisp,就出来一个lisp的环境,类似python的调用方法,但这样就没有一个适合lisp的editor,总所周知,lisp的语法是比较变态的,不用一个专门的editor是很痛苦的。

看见了命令行,可以输入一些简单命令体会一下,唯一需要说明的是Lisp用分号(可以不止一个)表示注释。

;;;一些简单命令
>(+ 2 3)                          ;加法,可以试下减法乘法除法
5                                    ;结果
>(+ 1 2 3)                       ;可以加很多数
6
>"hello, world"
"hello, world"
>(format t "hello, world")     ;format 类似于C的printf函数
hello, world                       ;函数本身的效应
NIL                                  ;函数的返回值,NIL表示False
>(defun hello-world () (format t "hello, world"))  ;定义函数
HELLO-WORLD                   ;每个表达式都有返回值,定义函数的话返回定义的函数名
>(hello-world)                    ;调用函数
hello, world
NIL                                  ;不解释了

总之吧,现阶段,Lisp就是很多括号,运算符在最前,每个命令都有个返回值。

分类: Lisp 标签:
  1. 匿名
    2009年11月13日21:45 | #1

    cool,我也听别人推荐过这个,你继续写阿,嘿嘿,我会不停捧场的。

  2. a.l
    2010年1月31日08:41 | #2

    呵呵。好像人工智能用的多一些。继续写。我也捧场啊

  1. 本文目前尚无任何 trackbacks 和 pingbacks.