Common Lisp入门:Emacs Lisp教程精华

需积分: 33 1 下载量 76 浏览量 更新于2024-07-26 收藏 416KB PDF 举报
"这是一份关于Lisp编程语言的入门教程,特别关注于Emacs Lisp的简单应用。教程由Geoffrey J. Gordon撰写,并由Bruno Haible修订,刘鑫和张泽鹏进行了翻译和整理。它指出此教程基于CMU环境,可能与其他Lisp环境在某些细节上有所不同。推荐的Lisp学习资料包括Guy L. Steele Jr.的《CommonLISP: the Language》一书,以及提及但未评论的Dave Touretsky的作品。" 在Lisp语言中,符号(Symbols)是非常基础的元素。它们本质上是不可变的字符串,可以包含字母、数字和连接符,但必须以字母开头。例如,`a`, `b`, `c1`, `foo`, `bar` 和 `baaz-quux-garply` 都是合法的Lisp符号。需要注意的是,如果仅输入数字或以连接符开头的数字串,Lisp可能会将其解析为数值而非符号。 在交互式Lisp环境中,可以使用`(setq symbol value)`来设置符号的值,如`(setq a 5)`将`a`的值设为5。之后,通过`symbol`可以直接获取其值,如`(a)`会返回5。`let`表达式可以临时绑定一个符号的值,如`(let ((a 6)) a)`会在当前作用域内将`a`的值设为6,但这个改变仅在`let`表达式的范围内有效,一旦退出,`a`的值将恢复为5。此外,可以使用函数操作符号的值,如`(+ a 6)`会将`a`的值与6相加,得到11。 Lisp中的`nil`和`t`有特殊的意义,它们分别代表逻辑上的`false`和`true`。`nil`不仅是false的表示,也是未定义符号的标识。尝试访问一个未定义的符号,如`(b)`,会导致错误,提示“尝试获取未绑定符号B的值”。 这份Lisp入门教程涵盖了符号的基本操作,包括设置和获取值,以及特殊符号`t`和`nil`的使用。通过这些基础知识,初学者可以开始了解和学习Lisp的基本语法和程序设计概念。为了深入学习,建议参考Guy L. Steele Jr.的书籍,以便理解更广泛的标准和实践。