【发布时间】:2020-01-14 19:01:56
【问题描述】:
我有一个包含向量的集合,例如#{[1 2 3]},我想获取集合的第一个成员的第一个元素。还有比(first (first set)) 更惯用的方法吗?
【问题讨论】:
-
ffirst。请注意,如下所述,没有保证按顺序排列。
我有一个包含向量的集合,例如#{[1 2 3]},我想获取集合的第一个成员的第一个元素。还有比(first (first set)) 更惯用的方法吗?
【问题讨论】:
ffirst。请注意,如下所述,没有保证按顺序排列。
默认的 clojure 集是无序的,因此在它们上调用 first 并没有真正意义(除非您确定它是一组 1 个元素)。如果它是一个排序集,它确实有意义。您所做的将是获取任何集合的第一个元素的惯用方式。核心的另一个选项是ffirst。我会说这在社区中的惯用语稍差一些,但仍然很好。
【讨论】:
(sorted-set)创建后者,也可以选择传递一个自定义比较器来确定元素顺序,见clojuredocs.org/clojure.core/sorted-set