如何从一组向量中的第一个向量中获取第一项?

ben*_*002 3 vector clojure

我有一个包含向量的集合,例如#{[1 2 3]},并且我想获取该集合的第一个成员的第一个元素。有没有比 更惯用的方法来做到这一点(first (first set))

bfa*_*bry 6

默认的 clojure 集是无序的,因此调用first它们实际上没有意义(除非您确定它是一组 1 个元素)。如果它是一个有序集合,它确实有意义。您所做的将是获取任何集合中第一个元素的惯用方法。核心的另一个选择是ffirst. 我会说这在社区中稍微不那么惯用,但仍然很好。

  • 实际上,有非排序(默认)和排序集,您可以使用“(sorted-set)”创建后者,并且还可以选择传递自定义比较器用于确定元素顺序,请参阅https: //clojuredocs.org/clojure.core/sorted-set (4认同)