Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
49 lines (43 sloc) 2.28 KB
;;;;-*- Lisp -*-
* oconnore:
** review article
** implement functional arrays -- use RRB-trees?
* ebzzry:
** implement Red-Black trees?
* fare:
** collect any TODO item from the article that's missing in this file.
* Unassigned:
** Some bootstrapped datastructure from Okasaki
** More from
** Import functionality from cl-containers?
** Add "Minimal Viable Snippet" for the library and each of its major features.
*** Initial: some treesort ?
** test explicit <-> implicit adapters
** look at how scala does these things
** Move the payload of a tree out of the basic tree structure (i.e. (key, value))
** Add method to choose on which side of the tree to drop and/or insert,
or document why the default is always right.
** Have stateful classes that allow for removing
one and/or many entries while walking the structure once and/or many times (?)
** Add value merging as a method, i.e. generalize the map/2 mechanism to insert.
** Get something like cl-container's find-or-create-class, combined with memoization,
for generating classes that match some specification of an interface.
** Note that a single interface may have many classes and sub-interfaces,
sometimes with mutual recursion in classes pointing to each other
through methods and/or :class allocated slots.
** Develop example of multiply-indexed-organized tuple store.
Each node is simultaneously node of multiple trees.
Depending on which index you're using,
they have to be viewed as a tree in the according way,
and appropriate accessors have to be chosen for say subtree access.
The same tree-manipulation routines can be used on the same tree nodes
with completely different results depending on which interface you use.
* Low Priority:
** Remember functions that were built with explicit->implicit adapter,
and optimize away indirection through interface in any implicit->explicit transformation back.
** refactor transformers through a with-lambda-list-adapter
** Create a DSL so both pure and stateful variants can be extracted from a single specification, whereby you can (update-node a ...) and it will preserve the identity of linear variable a when in stateful mode.