【问题标题】:How to obtain first item from first vector in a set of vectors?如何从一组向量中的第一个向量中获取第一项?
【发布时间】:2020-01-14 19:01:56
【问题描述】:

我有一个包含向量的集合,例如#{[1 2 3]},我想获取集合的第一个成员的第一个元素。还有比(first (first set)) 更惯用的方法吗?

【问题讨论】:

  • ffirst。请注意,如下所述,没有保证按顺序排列。

标签: vector clojure


【解决方案1】:

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

【讨论】:

  • 其实,有非排序(默认)和排序集,你可以用(sorted-set)创建后者,也可以选择传递一个自定义比较器来确定元素顺序,见clojuredocs.org/clojure.core/sorted-set
  • 哦!我忘了有一个排序集,我只记得排序图。更新答案谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多