2010-04-26 8 views

Respuesta

32

concat devuelve una secuencia perezoso.

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. 

se puede convertir de nuevo a un vector con en:

user=> (into [] (concat [1 2] [3 4] [5 6])) 
[1 2 3 4 5 6] 

en los transitorios utiliza por lo que es bastante rápido al respecto.

+16

También hay 'vec' para código ligeramente más corto con un rendimiento muy similar. –

+1

¿Alguien sabe por qué? –

+0

Creo que el 'por qué' se debe a que devuelve un LazySeq, que en realidad no es una lista. Además, los vectores de Clojure no son flojos. Ver http://stackoverflow.com/q/12206806/1814970. – marcelocra

Cuestiones relacionadas