clojure - 从更长的序列中获取部分序列clojure
问题描述
给定一个序列 ("a","b","c","d","e"),获取它的子序列的最佳方法是什么,例如 ("c","d","e" )?
我查找了 subseq 但它需要一个测试,在这种情况下我希望能够只提供位置。
解决方案
最简单的方法是使用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 (网站和书籍)
- 活的 Clojure
- 获取 Clojure
推荐阅读
- javascript - 使用 ArcGIS JavaScript API 设置基于应用程序的登录
- python - 具有继承的 Python 类属性
- ruby - AWS 和 Chef 中的公共 IP 地址问题
- aws-cdk - 如何将 api-gateway 的 LambdaRestApi 附加到 CloudFrontWebDistribution?
- python - 未使用 TCP 连接客户端 IP 地址
- sql - 如何使用 pgSql 查询同一列的上一行的总和
- ajax - Primefaces AJAX update="@form" 两次调用监听器
- python - Pandas - 将一个数据框中的一列中的值匹配到另一个数据框中的几列,并从原始数据框中创建新列
- c - 编写从标准输入读取并打印到标准输出的 ac 程序,没有内置的行长限制
- javascript - 如何检查承诺是否已解决并有条件地渲染 Javascript?