Clojure 将具有相同第一个元素的向量分组到向量列表中
我有 我需要对它进行分组,以便得到具有相同第一个元素的向量列表:Clojure 将具有相同第一个元素的向量分组到向量列表中,clojure,Clojure,我有 我需要对它进行分组,以便得到具有相同第一个元素的向量列表: ([AA moo foo boo][AA soo doo foo][BB woo roo too][BB koo ooo yoo]) 有分组功能吗?谢谢确实有,它被命名为groupby ([AA moo foo boo][AA soo doo foo])([BB woo roo too][BB koo ooo yoo]) group by返回用于分组的值以及组的映射-因此,由于您只对这些组感兴趣,因此需要使用VAL来访问它们
([AA moo foo boo][AA soo doo foo][BB woo roo too][BB koo ooo yoo])
有分组功能吗?谢谢确实有,它被命名为
groupby
([AA moo foo boo][AA soo doo foo])([BB woo roo too][BB koo ooo yoo])
group by
返回用于分组的值以及组的映射-因此,由于您只对这些组感兴趣,因此需要使用VAL
来访问它们
或者,如果元素的顺序已经正确(即所有以
AA
开头的元素都出现在以BB
开头的元素之前,依此类推),则可以使用分区方式
:
(vals (group-by first '([AA moo foo boo]
[AA soo doo foo]
[BB woo roo too]
[BB koo ooo yoo])))
;; => ([[AA moo foo boo] [AA soo doo foo]]
;; [[BB woo roo too] [BB koo ooo yoo]])
实际上有,它被命名为
groupby
([AA moo foo boo][AA soo doo foo])([BB woo roo too][BB koo ooo yoo])
group by
返回用于分组的值以及组的映射-因此,由于您只对这些组感兴趣,因此需要使用VAL
来访问它们
或者,如果元素的顺序已经正确(即所有以
AA
开头的元素都出现在以BB
开头的元素之前,依此类推),则可以使用分区方式
:
(vals (group-by first '([AA moo foo boo]
[AA soo doo foo]
[BB woo roo too]
[BB koo ooo yoo])))
;; => ([[AA moo foo boo] [AA soo doo foo]]
;; [[BB woo roo too] [BB koo ooo yoo]])