Sono un novizio Clojure. Sto cercando di ottenere due copie di un vettore di semi delle carte. Il DRY modo non che io possa venire in mente èRipetizione dei vettori in Clojure
(def suits [:clubs :diamonds :hearts :spades])
(def two-times (concat suits suits))
Ci deve essere un modo più funzionale (anche se ci vuole più caratteri :-)). Cosa succede se voglio N volte? Eventuali suggerimenti?
Tutte le cose che cerco, come
(replicate 2 suits)
risultati in due vettori separati:
([:clubs :diamonds :hearts :spades] [:clubs :diamonds :hearts :spades])
Come faccio "appiattire" la struttura?
Non c'è niente non funzionale sull'utilizzo del valore di un Var all'interno del 'def' modulo creazione un altro Var. In effetti, questa è la cosa naturale da fare se il secondo Var dipende dal primo. Naturalmente se si desidera un metodo generale di concatenazione di n copie di un seq, dove n potrebbe o non potrebbe essere conosciuto in anticipo, allora è necessaria una soluzione migliore (come si trova nelle risposte qui). –
In realtà, questo è ciò che intendevo (N copie). Sono d'accordo sul fatto che la mia funzione due volte sia "funzionale" - non è pratica se voglio 100 copie :-). – Ralph