我想检查列表中的任何元素是否满足给定条件。我尝试过使用some,它返回true或nil,但似乎找不到具有类似功能的函数来检索true/false。
示例 - 检查列表中是否有 6:
(some #(= 6 %) numbers-list))
我认为这是最惯用的方法(使用 set 作为函数),但这确实返回nil或值本身:
(some #{6} [1 2 3 4 5 6 7])
;; => 6
Run Code Online (Sandbox Code Playgroud)
正如对您的问题的评论中提到的,可以使用将其转换为布尔值boolean。
返回布尔值的其他方法是转换为集合并使用contains?返回布尔值:
(contains? (set [1 2 3 4 5 6 7]) 6)
;; => true
Run Code Online (Sandbox Code Playgroud)
(因为contains?“对于向量和 Java 数组等数字索引集合,...测试数字键是否在索引范围内。”)是否需要额外的转换。
或者类似地使用 Java 互操作(但也适用于向量和列表):
(.contains [1 2 3 4 5 6 7] 6)
;; => true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |