2013-07-25 15 views

Antwort

5

Wenn Sie mehr Operationen zum Einfügen/Löschen in einer Datenstruktur ausführen, sollten Sie eine Liste verwenden. Wann immer in einer Datenstruktur der Zugriff auf Variablen sehr häufig ist, verwenden Sie einen Vektor.

Tupel sind Objekte, die Elemente verschiedener Typen in einem einzigen Objekt zusammenfassen, genau wie Paarobjekte für Elementpaare, aber verallgemeinert für eine beliebige Anzahl von Elementen. Konzeptionell ähneln sie einfachen Datenstrukturen (C-like structs), aber anstatt Datenelemente zu nennen, wird auf ihre Elemente durch ihre Reihenfolge im Tupel zugegriffen.

6

Tupel wird normalerweise in Clojure durch eine assoziative Datenstruktur wie Karte {:name "david" :age 35} oder Datensatz dargestellt.

Ein Vektor ["david" 35] bietet schnellen Positionszugriff (= 35 (nth ["david" 35] 1)), und Sie können verschiedene Arten speichern.

Eine Liste ("david" 35) oder ("david" "justin" "david") bietet schnellen Zugriff von der Kopf- und Vorlauf-Traversierung. Obwohl es verschiedene Typen enthalten kann, ist es am üblichsten, dass es einen einzelnen Typ enthält, der möglicherweise Duplikate enthält, in einer bestimmten Reihenfolge. Im Gegensatz zu einer Menge #{"david" "justin"}, die keine Duplikate enthalten würde und für die Überprüfung der Mitgliedschaft/Anwesenheit optimiert ist.

Sortierte Listen, Sets und Karten verwalten die Reihenfolge der Objekte mit einem Komparator.

Check out 4clojure und clojuredocs.org. Viel Glück!