什么是元组?元组与列表与矢量?

时间:2013-07-25 08:04:19

标签: clojure programming-languages computer-science

您能否简要介绍一下Tuple?何时使用ListVector

2 个答案:

答案 0 :(得分:7)

元组通常通过关联数据结构(如地图{:name "david" :age 35}或记录)在Clojure中表示。

向量["david" 35]提供快速位置访问(= 35 (nth ["david" 35] 1)),您可以存储不同类型。

列表("david" 35)("david" "justin" "david")提供从头部快速访问和快进遍历。虽然它可以容纳不同的类型,但最常见的是它以确定的顺序包含单个类型,可能包含重复类型。与集合#{"david" "justin"}形成对比,后者不包含任何重复项,并针对检查成员资格/存在进行了优化。

排序列表,集合和地图使用比较器维护对象的顺序。

查看4clojure和clojuredocs.org。祝你好运!

答案 1 :(得分:6)

如果您要在数据结构中执行更多插入/删除操作,则应使用List。当在数据结构中访问变量非常频繁时,使用向量。

元组是在单个对象中将不同类型的元素组合在一起的对象,就像对对象对元素对一样,但是对于任意数量的元素都是通用的。 从概念上讲,它们类似于普通的旧数据结构(类似C的结构),但它们不是命名数据成员,而是通过它们在元组中的顺序来访问它。