Clojure использование переходных процессов

Я немного потерял с использованием переходных процессов в clojure. Любая помощь будет оценена. Пример кода:

(defn test-transient [v]
    (let [b (transient [])]
        (for [x v] (conj! b x))
        (persistent! b)))

user> (test-transient [1 2 3])
[]

Я попытался сделать это постоянным до возвращения, и в результате:

(defn test-transient2 [v]
    (let [b (transient [])]
        (for [x v] (conj! b x))
        (persistent! b)
        b))

user> (test-transient2 [1 2 3])
#

Но если я использую кон! отдельно кажется работает нормально

(defn test-transient3 [v]
    (let [b (transient [])]
    (conj! b 0)
    (conj! b 1)
    (conj! b 2)
    (persistent! b)))

user> (test-transient3 [1 2 3])
[0 1 2]

Есть ли какие-то ограничения? Если так, как я могу скопировать значения из постоянного вектора в переходный процесс?

Спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос