conj和 cons的区别
来源:互联网 发布:2016年非农数据统计 编辑:程序博客网 时间:2024/06/05 07:18
conj和 cons的区别,看这两个函数差不多,但是做的事情可是不一样的。差别见下列表
1)conj字面的解释可以是 con join ,那么我们可以猜到如果(conj a b),那么b 就会被join到 a中;这个和cons 完全不一样的,cons 只是合并两个集合;
效果如下
(def m {:s 1 :j 88 :jj 90})
user=> (conj m [:yy 90])
{:jj 90, :j 88, :yy 90, :s 1}
{:jj 90, :j 88, :yy 90, :s 1}
user=> (cons m [:yy 90])
({:jj 90, :j 88, :s 1} :yy 90)
({:jj 90, :j 88, :s 1} :yy 90)
从上面的sample也可能看出来了,conj 和cons返回的数据集合格式也是不一样的,conj 返回的是{}map /cons返回的是()list ,更深入的解释就是conj 返回的数据格式是参数的类型,而cons返回的是序列就是(), 其实最具体的说法就是惰性序列;
2)conj 和cons的参数格式要求不一,conj要求必须是同一数据格式,cons则没有要求参数必须是相同数据类型。
(cons m [1 2 5 2])
({:jj 90, :j 88, :s 1} 1 2 5 2)
(cons m [1 2 5 2])
({:jj 90, :j 88, :s 1} 1 2 5 2)
而conj
conj m [1 2 5 2])
IllegalArgumentException Vector arg to map conj must be a pair clojure.lang.APersistentMap.cons (APersistentMap.java:35)
IllegalArgumentException Vector arg to map conj must be a pair clojure.lang.APersistentMap.cons (APersistentMap.java:35)
报错了
0 0
- conj和 cons的区别
- conj--复数的共轭值
- cons的作用
- cons的定义
- cons t 关键字 和拷贝
- car、cdr、cons的来历
- scala的cons(::)和(:::)连接符和对List元素的操作
- conj 函数
- cons成员函数的约束有多大?
- 转贴:car、cdr、cons的来历
- Scala的cons,集合合并与添加
- 关于C语言中的cons的使用。
- C++中的const数据成员和cons成员函数
- int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的区别
- Lisp中car,cdr和cons都是基础函数。cons用于构造lists,car和cdr用于分割lisp。
- matlab中涉及三角函数求雅可比矩阵出现conj无法求导的问题
- 9. cons
- 总结cons
- 深度优先搜索
- GNU Binutils
- C++常见的编译错误中英对应翻译
- 创建节点的应用
- 正则表达式
- conj和 cons的区别
- 图论知识点
- 10790 - How Many Points of Intersection?
- 2013给自己一个总结
- 数学之路-群体行为与群体智能(2)
- Installing Java 7 Update 25 on 12.04 LTS?
- iOS开发常用的第三方类库
- js document.all的用法 .
- [OpenCV] -- win7下配置OpenCV的Qt开发环境