Если у меня есть Вектор:
[1 2 3 4 5 6 7 8 9]
: и я хочу заменить 5 на 0, чтобы дать:
[1 2 3 4 0 6 7 8 9]
Как я могу это сделать, когда знаюиндекс как 4?
Что-то вроде:
(replace-in-vec [1 2 3 4 5 6 7 8 9] 4 0)
assoc работает и с векторами!
assoc
Usage: (assoc map key val) (assoc map key val & kvs) ассоциативный [Iate]. Применительно к карте, возвращает новую карту того же (хэшированный / отсортированный) тип, содержащий отображение ключа (ей) на val (s). Когда применяется к вектору, возвращает новый вектор, содержащий val в индексе. Примечание - индекс должен быть <= (количество вектор). </p>
Usage: (assoc map key val) (assoc map key val & kvs)
ассоциативный [Iate]. Применительно к карте, возвращает новую карту того же (хэшированный / отсортированный) тип, содержащий отображение ключа (ей) на val (s). Когда применяется к вектору, возвращает новый вектор, содержащий val в индексе. Примечание - индекс должен быть <= (количество вектор). </p>
(assoc [1 2 3] 1 :a) => [1 :a 3]
Вы хотите assoc: http://clojure.github.com/clojure/clojure.core-api.html#clojure.core/assoc