Persistent data structure: Difference between revisions

Content deleted Content added
m Partial versus full persistence: fix capitalization, improve wording
m Clojure: fix capitalization
Line 154:
 
=== Clojure ===
Like many programming languages in the [[Lisp (programming language)|Lisp]] family, Clojure contains an implementation of a linked list, but unlike other dialects its implementation of a Linkedlinked Listlist has enforced persistence instead of being persistent by convention.<ref>{{Cite web|url=https://clojure.org/reference/lisps|title=Clojure - Differences with other Lisps|website=clojure.org|access-date=2018-10-23}}</ref> Clojure also has efficient implementations of persistent vectors, maps, and sets based on persistent hash array mapped tries. These data structures implement the mandatory read-only parts of the [[Java collections framework]].<ref>{{Cite web|url=https://clojure.org/reference/data_structures|title=Clojure - Data Structures|website=clojure.org|access-date=2018-10-23}}</ref>
 
The designers of the Clojure language advocate the use of persistent data structures over mutable data structures because they have [[value semantics]] which gives the benefit of making them freely shareable between threads with cheap aliases, easy to fabricate, and language independent.<ref>{{Cite web|url=https://www.infoq.com/presentations/Value-Values|title=Keynote: The Value of Values|website=InfoQ|access-date=2018-10-23}}</ref>