我有一个序列,(def coll '([:a 20] [:b 30] [:c 50] [:d 90]))
我想遍历 seq,只修改与谓词匹配的第一个元素。
谓词(def pred (fn [[a b]] (> b 30)))
(f pred (fn [[a b]] [a (+ b 2)]) coll) => ([:a 20] [:b 30] [:c 52] [:d 90])
f 是我想要的 fn,它需要一个 pred,一个 fn 应用于与 pred 匹配的第一个元素。所有其余的元素都不会被修改并在 seq 中返回。
执行上述操作的惯用方法是什么?