Превращение в список легко:
user=> (conj '(:bar :baz) :foo)
(:foo :bar :baz)
Добавление к вектору легко:
user=> (conj [:bar :baz] :foo)
[:bar :baz :foo]
Как я (идиоматически) приступаю к вектору, возвращая вектор? Это не работает, поскольку он возвращает seq, а не вектор:
user=> (cons :foo [:bar :baz])
(:foo :bar :baz)
Это уродливое (IMVHO):
user=> (apply vector (cons :foo [:bar :baz]))
[:foo :bar :baz]
Примечание. Я просто хочу создать структуру данных, которую я могу добавить и добавить. Добавление к большим спискам должно иметь большое ограничение производительности, поэтому я думал о векторах.