cons vs list
而我们常说 list 就是有cons cell 连接起来的
那么cons 与list 到底是什么区别呢?
list 是 列表, list 的结尾是以 nil 结尾的。
cons 是 结尾不是 nil 的列表
cons 因为结尾不是nil ,所以很多系统自带的功能函数是不能对cons 进行计算的。
所以cons 在整个开发上是很少使用的。但是没有cons 是远远不行的。
例如:
CL-USER> (cons 1 (cons 2 (cons 3 nil)))
(1 2 3)
CL-USER> (cons 1 (cons 2 3))
(1 2 . 3)
CL-USER> (length (cons 1 (cons 2 (cons 3 nil))))
3
CL-USER> (length (cons 1 (cons 2 3)))
; Evaluation aborted on #.
CL-USER>
length 函数是无法对congs 统计长度的。
但是可以对list 统计长度。
例如:
CL-USER> (equal '(1 2 3) (cons 1 (cons 2 (cons 3 nil))))
T
CL-USER> (equal '(1 2 3) (cons 1 (cons 2 3)))
NIL
CL-USER>
到这里,应该就很明白了。
CL-USER> (setf x (cons 2 3)) 点对 cons
(2 . 3)
CL-USER> x
(2 . 3)
CL-USER> (car x)
2
CL-USER> (cdr x)
3
CL-USER> (setf y '(2 3)) 列表
(2 3)
CL-USER> (car y )
2
CL-USER> (cdr y)
(3)
CL-USER>
对比看看 cdr 的求值是不同的list 的cdr 求的是 列表
cons 的cdr 求值是值 。
cons 在编程上用的比较多的应该是点对
(2 . 3)
可以很便利的标识某种数据结构。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-751819/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/133735/viewspace-751819/
cons vs list相关推荐
- boost::fusion::cons用法的测试程序
boost::fusion::cons用法的测试程序 实现功能 C++实现代码 实现功能 boost::fusion::cons用法的测试程序 C++实现代码 #include <string& ...
- int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的区别
加有const关键字的几种情况的辨析 const修饰的代码 含义(特点) 等价性 int *p = # 1. 可以读自己 2. 可以通过*p改自己 3. 可以 ...
- (cons '(贰 . 输入/输出) 《为自己写本-Guile-书》)
(car <为自己写本-Guile-书>) 这个世界上,有很多人讨厌 Lisp 语言.Guile 是 Sheme 的一种方言,而后者是 Lisp 的一种方言,因此 Guile 自然也会被这 ...
- java consumer.poll_java – 无法在kafka consumer下设置’max.poll.records’,其中cons.poll仍然返回分区下的所有记录...
我创建了多线程消费者应用程序来处理各种分区. 查看各种博客,我开始了解'max.poll.records'属性,以便控制来自给定主题,分区的记录集.(因此它可以很快从记录循环中出来,因此调用cons. ...
- Lisp基础函数:car, cdr, cons...
Lisp中car,cdr和cons都是基础函数.cons用于构造lists,car和cdr用于分割lisp. 奇怪的命名 cons函数的名称并非没有含意:它是单词'construct'的缩写.car是 ...
- (cons '(壹 . 命令行程序界面) 《为自己写本-Guile-书》)
(car <为自己写本-Guile-书>) 前言中,我说要写一个文式编程工具.它的名字叫 zero,是个命令行程序,运行时需要由使用者提供一些参数与文式编程元文档路径.zero 读取元文档 ...
- (cons '(肆 . 数据类型) 《为自己写本-Guile-书》)
(car <为自己写本-Guile-书>) 所谓数据类型,是数据集合以及定义在这个数据集合上的一组运算.从大部分计算机的 CPU 的角度来看,存储器中的数据,只是以字节为单位的二值信号,并 ...
- append/cons car/cdr reduce
理解列表的关键是理解点对单元,虽然只要是点对单元都需要用括号引用起来,但是我们平常说的list是特指那些:后面的位置我们不直接存字面值了,改为地址,比如下一个点对的引用,所以当CDR为后续点对的链接或 ...
- Pros Cons
pros and cons 赞成与反对,同意与不同意,优点与缺点 pros, cons 本身就是一个词,不是任何词的缩写. 所以不是 profits ,conservative 的缩写
- 理解lisp中的cons
列表是Lisp的核心数据结构及语法.在Lisp里面,列表的存储方式比较特别,一个列表通常由1个或N个cons来组成的.那个list又与cons是什么关系呢?搞清楚之前,我混乱了许久,读过很多文档及实作 ...
最新文章
- stm32l0的停止模式怎么唤醒_汇聚力量,守护安全:2020 “AnQ唤醒云课堂”圆满收官!...
- 手表可测血压,耳机支持颈椎保护……这届电子设备越来越“养生”了
- 网站被降权后该进行检查哪些问题?
- iviewui php,Vue UI框架对比:Element UI、Ant Design Vue、iView
- Android自定义Shape
- Lucene学习总结之五:Lucene段合并(merge)过程分析
- C# Winform 使用二维码
- 我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)...
- More Effective C++ (限制类的对象数量)
- c# 在winform中为DataGridView头部标题添加ContextMenuStrip菜单
- 这三款提升工作效率的小工具,你都用过吗?
- 买个社区团购小程序多少钱呢?微信社区团购小程序怎么做
- UltraEdit如何激活
- MATLAB图像灰度图处理
- google s2 java开发文档
- vasp计算压电系数_求助DFTP算出来的压电系数
- 《达摩克利斯之剑 》
- python 通讯录 字典_Python实现命令行通讯录
- 多元线性回归哑变量设置方法
- 苹果(maccms V10) Python 采集豆瓣评分直接入库。