假设我想通过一系列数字或在一个范围内找到条件的第一个匹配项:
(doseq [x (range 3 12)
:when (= 0 (mod x 4))
]
(println x)
)
代码会打印all
可分割的数字,范围为3到11,因此它会4
和8
,但如果我只想要第一场比赛4
?
答案 0 :(得分:3)
doseq总是返回nil没有“你可以从doseq获得的第一场比赛”。
您可以做的是将(range 3 12)
过滤掉所有满足(= 0 (mod x 4))
的{{1}},然后最终获取第一个:
(->>
(range 3 12)
(filter #(= 0 (mod % 4)))
first)
; => 4
; this is eqivalent to the above it you are unfamiliar with `->>
; (first (filter #(= 0 (mod % 4)) (range 3 12)))