Common Lisp入门指南:从基础到实践
需积分: 33 25 浏览量
更新于2024-07-26
收藏 416KB PDF 举报
"LISP入门教程,适用于初学者,讲解LISP基础,由Geoffrey J. Gordon等人编著,特别提及在CMU环境下编写。推荐的Lisp学习资源包括Guy L. Steele Jr.'s《CommonLISP: the Language》一书。教程中详细介绍了Lisp中的Symbols概念,包括符号的创建、赋值以及使用。"
LISP是一种古老而强大的编程语言,以其独特的语法和结构而闻名。在LISP中,一切皆为列表,这使得它非常适合于处理和表示数据。本教程针对LISP初学者,旨在帮助他们轻松掌握LISP的基础知识。
首先,我们来了解LISP中的核心概念——Symbols。在LISP中,Symbols可以看作是字符串,但它们有特殊的意义和用途。Symbols可以包含字母、数字和连接符,但必须以字母开头。例如,`a`, `b`, `c1`, `foo`, `bar`, `baaz-quux-garply` 都是有效的符号。值得注意的是,如果仅输入数字或以连接符开头的数字,LISP会将其解析为数值而非符号。
在LISP中,你可以为符号赋值并检索其值。`setq` 是用于设置符号值的函数,例如 `(setq a 5)` 将`a`的值设置为5。然后,通过简单的符号引用,如 `(a)`,可以获取该符号的当前值。在LISP中,表达式 `(let ((a 6)) a)` 创建了一个局部作用域,在这个作用域内`a`的值被临时绑定为6。一旦`let`块结束,`a`的值将恢复到之前的5。符号也可以作为函数参数,例如 `(+)` 函数接受两个参数,`(+ a 6)` 将`a`的值与6相加。
在LISP中,有两个特殊的符号,`t` 和 `nil`。它们分别代表真和假。无论何时查询`t`的值,总会得到`t`本身,同样,`nil`的值始终是`nil`。这些特殊符号在条件判断和逻辑操作中扮演着重要角色。
在LISP环境中尝试访问未定义的符号会导致错误。例如,如果你尝试获取没有赋值的`b`的值,LISP会抛出一个“Error: Attempt to take the value of the unbound symbol B”的错误。
教程中提到,对于深入学习LISP,Guy L. Steele Jr.的《CommonLISP: the Language》是一本极好的资源。这本书的第一版和第二版都值得阅读,它们涵盖了LISP的基础和标准,是进阶学习的宝贵资料。
LISP入门教程提供了一个简单易懂的起点,让初学者能够快速理解LISP的基本概念,尤其是符号的概念和用法,为进一步学习LISP语言打下坚实基础。通过实践和阅读推荐书籍,学习者将能更好地掌握LISP的强大功能和灵活性。
2017-12-11 上传
2011-07-04 上传
2016-04-02 上传
2018-12-06 上传
点击了解资源详情
2010-05-03 上传
2010-10-05 上传
2014-10-15 上传
LlL5E
- 粉丝: 0
- 资源: 1
最新资源
- 新型智能电加热器:触摸感应与自动温控技术
- 社区物流信息管理系统的毕业设计实现
- VB门诊管理系统设计与实现(附论文与源代码)
- 剪叉式高空作业平台稳定性研究与创新设计
- DAMA CDGA考试必备:真题模拟及章节重点解析
- TaskExplorer:全新升级的系统监控与任务管理工具
- 新型碎纸机进纸间隙调整技术解析
- 有腿移动机器人动作教学与技术存储介质的研究
- 基于遗传算法优化的RBF神经网络分析工具
- Visual Basic入门教程完整版PDF下载
- 海洋岸滩保洁与垃圾清运服务招标文件公示
- 触摸屏测量仪器与粘度测定方法
- PSO多目标优化问题求解代码详解
- 有机硅组合物及差异剥离纸或膜技术分析
- Win10快速关机技巧:去除关机阻止功能
- 创新打印机设计:速释打印头与压纸辊安装拆卸便捷性