Lists是有序集合

Lists

list是有序链表,和vector不同的是添加新元素的时候是添加在集合的头部。 值得注意的是,因为list会以第一个元素为函数去求值,所以我们要在list前加'防止求值。

创建list

user=> (def nums '(5 5 6))
#'user/nums
user=> nums
(5 5 6)

因为list是没有索引的所以我们只能同通过first和rest去访问他的元素

user=> (first nums)
5
user=> (rest nums)
(5 6)

添加元素,和vector不同每次都是添加到集合的头部

user=> (conj nums 7)
(7 5 5 6)

list可以当做一个栈去使用

user=> (peek nums)
5
user=> (pop nums)
(5 6)