Common Lisp 教程:队列实现与破坏性函数解析
需积分: 30 197 浏览量
更新于2024-08-10
收藏 2.7MB PDF 举报
"队列实现与Common Lisp中文版用户手册"
队列是一种常用的数据结构,它遵循先进先出(FIFO)的原则。在图12.7的队列实现中,`make-queue`函数用于创建一个新的空队列,而`enqueue`函数用于向队列末尾添加元素,`dequeue`函数则用于从队列头部移除并返回第一个元素。在示例中,队列`q1`首先被初始化为空,然后依次加入元素'A'、'B'和'C',其内部结构如图12.6所示。当从队列中连续弹出元素'A'和'B'后,再向队列`q1`添加元素'D',队列的结构变为`((C D) D)`。
在Common Lisp中,有一些函数是破坏性的,即它们会修改输入的列表结构以提高效率。例如,`delete`函数是`remove`的一个变体,它可以从列表中删除指定的元素。尽管`delete`可能会改变列表的结构,但它的行为并不保证,因为它没有明确的副作用。在多数Common Lisp实现中,如下示例所示,`delete`会删除列表`lst`中的所有'a'元素:
```lisp
(setf lst '(a r a b i a)) ; 设置lst为'(a r a b i a)
(delete 'a lst) ; 删除lst中的'a'
```
这本书《ANSI Common Lisp》是学习Common Lisp语言的实用资源,适用于初学者和专业程序员。它分为两部分,前半部分通过大量实例讲解关键概念,而后半部分是一个完整的ANSI Common Lisp操作符参考。书中不仅介绍了Lisp的基础知识,还强调了递归、指针的作用、第一级函数的重要性和更多高级主题,如宏、CLOS(Common Lisp Object System)、列表操作和程序优化。此外,还有三个实际应用示例来巩固前面的知识,分别是逻辑推理程序、HTML生成器和面向对象编程的嵌入式语言。附录部分提供了调试指南、源码、ANSI Common Lisp与其他Lisp版本的区别以及完整的ANSI Common Lisp参考手册。
通过这本书,读者可以系统地学习Common Lisp,并在实践中掌握这一强大的编程语言。学习Lisp的最佳方式是直接动手编程,书中的实例和练习可以帮助读者迅速上手。
2022-07-15 上传
2009-09-07 上传
115 浏览量
2024-11-09 上传
2024-11-09 上传
刘看山福利社
- 粉丝: 34
- 资源: 3886
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章