Czy możesz podać krótki opis Tuple
? A kiedy go używać ponad List
i Vector
?Co to jest Tuple? I tuple vs. List vs. Vector?
Odpowiedz
Kiedy kiedykolwiek będziesz wykonywać więcej operacji wstawiania/usuwania w strukturze danych, powinieneś użyć Listy. Kiedykolwiek w strukturze danych dostęp do zmiennych jest bardzo częsty, należy użyć wektora.
Krotki to obiekty, które spakują elementy różnych typów w jeden obiekt, tak jak obiekty par tworzą pary elementów, ale są uogólnione dla dowolnej liczby elementów. Pod względem koncepcyjnym są one podobne do zwykłych starych struktur danych (C-podobnych struktur), ale zamiast mieć nazwanych członków danych, ich elementy są dostępne przez ich kolejność w krotce.
Krotek zazwyczaj jest reprezentowany w Clojure przez asocjacyjną strukturę danych, taką jak mapa {:name "david" :age 35}
lub rekord.
Wektor ["david" 35]
oferuje szybki dostęp pozycyjny (= 35 (nth ["david" 35] 1))
i można przechowywać różne typy.
Lista ("david" 35)
lub ("david" "justin" "david")
zapewnia szybki dostęp od strony głowy i szybkie przewijanie do przodu. Mimo że może pomieścić różne typy, najczęściej będzie zawierał pojedynczy typ, prawdopodobnie zawierający duplikaty, w ustalonej kolejności. W przeciwieństwie do zestawu #{"david" "justin"}
, który nie zawierałby żadnych duplikatów i jest zoptymalizowany do sprawdzania członkostwa/obecności.
Posortowane listy, zestawy i mapy zachowują kolejność obiektów przy użyciu komparatora.
Sprawdź 4clojure i clojuredocs.org. Powodzenia!