Почему concat на векторах оценивается в списке? Вызов concat на векторах возвращает список. Будучи полным noob, я ожидал бы, что результатом будет также вектор. Почему преобразование в список? Пример: user=> (concat [1 2] [3 4] [5 6]) (1 2 3 4 5 6) ; Why not: [1 2 3 4 5 6] ? Ответ 1 concat возвращает ленивую последовательность. user=> (doc concat) ------------------------- clojure.core/concat ([] [x] [x y] [x y & zs]) Returns a lazy seq representing the concatenation of the elements in the supplied colls. вы можете преобразовать его обратно в вектор с помощью: user=> (into [] (concat [1 2] [3 4] [5 6])) [1 2 3 4 5 6] в использует переходные процессы, поэтому он довольно быстро об этом.
Ответ 1 concat возвращает ленивую последовательность. user=> (doc concat) ------------------------- clojure.core/concat ([] [x] [x y] [x y & zs]) Returns a lazy seq representing the concatenation of the elements in the supplied colls. вы можете преобразовать его обратно в вектор с помощью: user=> (into [] (concat [1 2] [3 4] [5 6])) [1 2 3 4 5 6] в использует переходные процессы, поэтому он довольно быстро об этом.