2016-07-20 5 views
1

Ich habe einen Vektor wie folgt aus:ein Element zwischen vorhandenen Elemente im Vektor Hinzufügen

[1 2 "b" 4 5 6 "c" 8 9 10] 

Ich möchte Buchstaben „a“ zwischen jedem Element hinzugefügt werden, so dass das Endergebnis sieht wie folgt aus:

[1 "a" 2 "a" "b" "a" 4 "a" 5 "a" 6 "a" "c" "a" 9 "a" 10] 

Was ist der beste Weg, dies in Clojure zu tun?

Beachten Sie, dass der Buchstabe "a" niemals das erste oder letzte Element im Vektor sein sollte, sondern nur zwischen anderen Elementen.

Antwort

8
user> (interpose "a" input) 
(1 "a" 2 "a" "b" "a" 4 "a" 5 "a" 6 "a" "c" "a" 8 "a" 9 "a" 10) 

Oder wenn der Ausgang ein Vektor sein muss, dann

user> (vec (interpose "a" input)) 
[1 "a" 2 "a" "b" "a" 4 "a" 5 "a" 6 "a" "c" "a" 8 "a" 9 "a" 10] 

ist die Dokumentation für interpose: https://clojuredocs.org/clojure.core/interpose

+0

Awesome! Ich wusste nicht, dass es eine Funktion dafür gibt. :) – Jarzka

Verwandte Themen