首页 > 代码库 > lisp初学笔记

lisp初学笔记

学习任何知识,都不能仅仅把它们当做知识,更重要的是要把它们在实际编程实践中应用起来,持有这样的学习观念才不至于让你变成学究式的活字典,对于程序员来说这一点尤其重要,你学习的任何语言知识,一定要在实际的程序编写过程中不断练习、不停实践,纸上得来终觉浅,绝知此事须躬行。

LispBox 实际上是把 Emacs、Slime、Clozure CL 以及 QuickLisp 集成到一起,使用 LispBox 做开发环境就相当于选择了 Emacs 作为编辑器、选择 Slime 作为交互界面,那么一定要熟悉 Emacs 和 Slime 的各种快捷键,这不仅会让你的学习开发过程事半功倍,更让你有一种高效率、不间断键盘作业的享受。

Common Lisp 中更常用 format 函数来输出到屏幕多一些,可以把它跟 C 语言的 printf 函数对照着来看,注意一下 format 中的那个参数 "t",代表的是标准输出流:*standard-output* ,也就是说如果在 t 的位置换一个参数,我们也可以把这段问候语发送到任何一个指定的输出流上。

(format t "你好, 世界!")

这个结构就是一个列表,用括号包围,里面共有 3 个元素,这些元素用空格分隔,不过双引号里的空格作为字符串内容处理,不起分隔作用,可以很明显地看出,format 属于比较特殊的符号,它就是一个函数名,后面的两个元素都是它的参数。

Emacs 中查询历史命令的快捷键是 M-p ,这里的大写 M 表示 Alt 键,M-p 就是同时按下 Alt 键 和 p 键
M-p 是向上翻
M-n 是向下翻

C-a 是把光标移动到行首的快捷键,这里大写的 C 表示 Ctrl 键,C-a 就是同时按下 Ctrl 键 和 a 键
C-e 是把光标移动到行尾的快捷键

defun 函数定义的标准语法形式:

(defun name (parameter*)
"可选的函数描述"
body-form*)

parameter* 表示 0 个或者多个 parameter,这里的 * 是正则式语法符号,表示 0 个或多个
body-form* 表示 0个或多个 body-form

(defun 函数名 (参数*)
"可选的函数描述"
形式体*)