Обновлено, поскольку я неверно истолковал вопрос.
Вот еще одно решение:
(apply assoc v (mapcat #(vector % (myfn (v %))) idx))
, то есть создание списка аргументов пар индекс / новое значениедо assoc
.Я думаю, что решения mange, вероятно, лучше, хотя.
Оригинальное, неправильное решение
Не забывайте, что вектор v
сам по себе является функцией своих индексов,Итак:
(map myfn (map v idx))
или:
(->> idx (map v) (map myfn))
или:
(map (comp myfn v) idx)
Я уверен, что есть и очень умный ответ, включающий juxt
:)