私はシーケンスを持っています、(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 と、pred に一致する最初の elem に適用する fn を取ります。残りの要素はすべて変更されず、seq で返されます。
上記を行う慣用的な方法は何ですか?