Ich frage mich, ob es eine Implementierung einer Karte, die ist:Effiziente Immutable Map-Implementierung?
- Immutable, so dass ich es in funktionaler Programmierung verwenden kann, und mühelos Transaktionen und Parallelität gewährleisten.
- Schnell. Ich habe Binary Suche Bäume (RB, AVL) und versucht, aber keiner von ihnen schien so schnell wie Hash-Tabellen. Gibt es eine Karte Implementierung, die konstante Zeit unterstützt für Updates und Abfragen? (Oder zumindest sehr schnell logarithmische Zeit)
Kurz gesagt, ist es eine funktionelle Datenstruktur, die mit Hash Karten in der Leistung vergleichen?
Vielen Dank für Ihre hilfreiche Antwort. Ich werde Clojure bald sehen. – Phil
Clojures unveränderliche Karten verwenden 32-Wege-Hash-Array-gemappte Versuche (http://en.wikipedia.org/wiki/Hash_array_mapped_trie). Sie sind eine großartige Datenstruktur - fast so schnell wie eine änderbare HashMap, aber mit all den Vorteilen, beständig und unveränderlich zu sein. – mikera