你能给我简要介绍一下Tuple
吗?List
以及何时使用它Vector
?
问问题
6703 次
2 回答
11
元组通常在 Clojure 中通过关联数据结构(例如映射{:name "david" :age 35}
或记录)来表示。
矢量["david" 35]
提供快速的位置访问(= 35 (nth ["david" 35] 1))
,并且您可以存储不同的类型。
列表("david" 35)
或("david" "justin" "david")
提供从头部快速访问和快进遍历。尽管它可以容纳不同的类型,但最常见的是它以确定的顺序包含单个类型,可能包含重复项。#{"david" "justin"}
与不包含重复项并针对检查成员/存在进行优化的集合形成对比。
排序集 ( sorted-set
) 和映射 ( sorted-map
) 使用比较器维护对象的顺序。
查看 4clojure 和 clojuredocs.org。祝你好运!
于 2013-07-25T10:29:48.723 回答
7
当您在数据结构中执行更多插入/删除操作时,您应该使用列表。当在数据结构中访问变量时非常频繁地使用向量。
元组是将不同类型的元素打包在一个对象中的对象,就像对对象对元素对所做的那样,但对任意数量的元素进行泛化。从概念上讲,它们类似于普通的旧数据结构(类似 C 的结构),但不是具有命名的数据成员,而是按它们在元组中的顺序访问其元素。
于 2013-07-25T08:11:34.273 回答