26
La chiamata concat sui vettori restituisce una lista. Essendo un noob totale mi aspetterei che il risultato sarebbe anche un vettore. Perché la conversione da elencare?Perché concat sui vettori viene valutato su un elenco?
Esempio:
user=> (concat [1 2] [3 4] [5 6])
(1 2 3 4 5 6)
; Why not: [1 2 3 4 5 6] ?
C'è anche 'vec' per un codice leggermente più corto con prestazioni molto simili. –
Qualcuno sa perché? –
Credo che il 'perché' sia perché restituisce un LazySeq, che in realtà non è una lista. Inoltre, i vettori Clojure non sono pigri. Vedi http://stackoverflow.com/q/12206806/1814970. – marcelocra