Это немного неловко, потому что вы разделили idx
и values
на две последовательности, когда они концептуально отображают индексы в значения.Поэтому, если вы позволите мне немного творчески изменить формат данных:
(def x [9 10 11 12 13])
(def changes {0 1, 2 3})
(defn xinto [v changes]
(reduce (fn [acc [k v]]
(assoc acc k v))
v
changes))
(xinto x changes) ;; gets the result you want
Если вы генерируете idx
и values
каким-то странным образом, что их не удобно группировать вместе, вы можетесгруппируйте их позже с (map list idx values)
и затем используйте мою xinto
реализацию с этим.