首页 > 解决方案 > 从更长的序列中获取部分序列clojure

问题描述

给定一个序列 ("a","b","c","d","e"),获取它的子序列的最佳方法是什么,例如 ("c","d","e" )?

我查找了 subseq 但它需要一个测试,在这种情况下我希望能够只提供位置。

标签: clojurefunctional-programming

解决方案


最简单的方法是使用drop& take

(def data  ["a","b","c","d","e"] )
(take 3 (drop 2 data))

如果数据是向量(方括号,请注意上面的更改),您可以使用subvec

(subvec data 2 5)

为了确保它是一个向量,它很容易使用vec

(subvec (vec data) 2 5)

=> ["c" "d" "e"]

如果您还没有看到它们,您可能需要查看这些资源:

当然,还有 Clojure CheatSheet


推荐阅读