代码之家  ›  专栏  ›  技术社区  ›  Kaisin Li

从较长的序列中获取部分序列Clojure

  •  1
  • Kaisin Li  · 技术社区  · 6 年前

    给定一个序列(“a”、“b”、“c”、“d”、“e”),获得其子序列的最佳方法是什么,例如(“c”、“d”、“e”)?

    我查找了子部分,但它需要一个测试,在这种情况下,我希望能够提供这个职位。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Alan Thompson    6 年前

    最简单的方法是使用 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"]
    

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

    当然, The Clojure CheatSheet