In Clojure, wie kann man die Elemente einer Sammlung, nicht aber die Sammlung selbst kontrastieren oder verbinden?

8

Nachteile verhält sich derzeit so:

%Vor%

Ich möchte erreichen:

%Vor%

Ich konnte keine Ressource dafür finden, aber das scheint so einfach zu sein, dass ich denke, dass es eine eingebaute Funktion geben sollte.

Oder ich kenne die Schreibwörter einfach nicht, um diese Situation zu beschreiben. Wie auch immer, lass es mich wissen. Danke!

Bearbeiten: Bitte antworten Sie nicht mit "flatten": P ie

%Vor%     
foobar 04.10.2011, 18:04
quelle

3 Antworten

10

Sie müssen concat verwenden:

%Vor%

Beispielverwendung:

%Vor%     
skuro 04.10.2011, 18:13
quelle
5

Ich glaube, Sie suchen nach concat (denken Sie " Listen verketten "):

  

[Concat] gibt ein lazy seq zurück, das die Verkettung der Elemente in den angegebenen Spalten darstellt.

In diesem Fall wäre die Verwendung:

%Vor%

Beachten Sie, dass Clojures concat im Gegensatz zu vielen anderen LISP-Dialekten eine Lazy-Sequenz ergibt. Siehe Wie kann man eine Lazy-Sequenz umwandeln? ein nicht-faul in Clojure? für, wie man eine Reihenfolge "forciert" (dieses kann nützlich sein / benötigt, oder nicht, abhängig von größerem Kontext, aber ist wichtig, im Verstand zu behalten).

Glückliche Kodierung.

    
user166390 04.10.2011 18:09
quelle
4

Eine Alternative ist "in".

into gibt immer den Typ des ersten Arguments zurück, im Gegensatz zu concat, das immer eine Liste zurückgibt.

%Vor%     
shark8me 05.10.2011 10:51
quelle

Tags und Links