2014-12-14 3 views
3

Clojure assoc применительно к вектору кажется имеет непоследовательностьClojure ассоциативного вектор поведение

Когда индекс присутствует в векторе, конф заменить значение

(assoc [1 2 3 4 5] 3 42) => [1 2 3 42 5] 

Когда индекс рядом с последними один вектором растет (conj эквивалент)

(assoc [1 2 3 4 5] 5 42) => [1 2 3 4 5 42]) 

в противном случае IndexOutOfBoundsExcpetion брошено

хотя полезно в некоторых случаях, как reduce assoc, это может привести к тонким ошибкам в программе

ли это ожидаемое поведение или, возможно, ошибка в доц для вектора?

+0

Настоящий, к сожалению. – Thumbnail

ответ

2

Ожидается. См. Docstring для assoc, особенно последнее примечание относительно аргумента index.

Это описано в верхней части страницы. 101 из Программирование Clojure.

Смежные вопросы