4 ms·
cdr could return an array "object" where it references the entire array, and a pointer where it should start indexing. Instead of using linked-lists as the fund
by tiles 16y ago
cdr could return an array "object" where it references the entire array, and a pointer where it should start indexing. Instead of using linked-lists as the fundamental datatype, it could use array subsets.
- Scriptor 16y agoSomething like this could be very feasible, especially when combined with the array interfaces so that the fact it's an object with a moving pointer isn't even noticed.
- koenigdavidmj 16y agoIf I recall correctly, Clojure does something like this on most of its basic types. Since it wants users to avoid in-place modifications, it provides data structures that have modification functions that return new instances of the data structure with the changes made. These also do not regenerate the whole structure; they only use memory to point to the one modified/added element. Please correct me if this is false.
- gtani 16y agoThat's correct, except for performance tweaks like transients http://technomancy.us/132 http://technomancy.us/132 http://fupeg.blogspot.com/2009/11/persistent-data-structures.html http://fupeg.blogspot.com/2009/11/persistent-data-structures... http://groups.google.com/group/clojure/msg/99d1cfcc3a9b520b http://groups.google.com/group/clojure/msg/99d1cfcc3a9b520b