Common Lisp入门教程:解析与探索

5星 · 超过95%的资源 需积分: 33 76 下载量 97 浏览量 更新于2024-07-31 收藏 416KB PDF 举报
"Lisp 入门教程 中文版,由 Geoffrey J. Gordon 和 Bruno Haible 编写,刘鑫翻译,旨在引导初学者进入 Lisp 世界,特别针对 Common Lisp。教程强调了一些基本概念,如符号(Symbols)的使用,并提醒读者在不同环境下可能存在的差异。建议参考 Guy L. Steele Jr. 的《CommonLISP:the Language》作为深入学习的资料。" 本文档是针对 Common Lisp 的入门教程,主要介绍了一些基础概念和操作。首先,Lisp 中的符号(Symbols)被定义为字符串,它们可以包含字母、数字和连接符,但需以字母开头。例如,`a`, `b`, `c1`, `foo`, `bar`, `baaz-quux-garply` 都是有效的符号。符号的值可以通过 `setq` 来设定,如 `(setq a 5)` 将符号 `a` 的值设置为 5。 Lisp 提供了访问符号值的机制,通过简单的引用符号即可获取其值,如 `(a)` 返回 `a` 的值。`let` 表达式可以临时绑定符号的值,例如 `(let ((a 6)) a)` 绑定 `a` 为 6,在 `let` 表达式内部 `a` 的值为 6,外部则恢复原值。此外,可以将符号的值作为函数参数,如 `(+ a 6)` 表示加上 `a` 的值。 在 Lisp 中,`t` 和 `nil` 是两个特殊的符号,它们分别表示真和假。`t` 的值始终为 `t`,而 `nil` 的值始终为 `nil`,这在逻辑判断和条件表达式中非常关键。尝试获取未定义的符号的值会导致错误,如尝试获取 `b` 的值会报“尝试获取未绑定符号 B 的值”的错误。 此教程提醒读者,由于它针对 CMU 环境,因此在其他 Lisp 实现中可能存在细节差异。推荐的进阶学习资料是 Guy L. Steele Jr. 的《CommonLISP:the Language》一书,分为第一版和第二版,两者之间的标准差异较小,但对于编程实践来说差别不大。Dave Touretsky 的一本关于 Lisp 的书也被提及,但未提供具体评价。 这篇 Lisp 入门教程提供了基本的 Lisp 语法和概念,包括符号的使用、值的绑定以及真和假的概念,是初学者了解 Common Lisp 的良好起点。学习者应结合实际 Lisp 环境进行练习,并参考推荐的书籍以深入理解 Lisp 语言。