Module adapton::catalog::collections
[−]
[src]
Modules
trie |
Enums
Dir2 | |
List | |
NameElse | |
Tree |
Traits
Level |
Levels for a probabilistically-balanced trees. For more details see Pugh and Teiltelbaum's POPL 1989 paper, and its "Chunky List" representation (Incremental Computation via Function Caching). |
ListElim |
Types that can be pattern-matched like a list of |
ListIntro |
Types that can be created like a list of |
MapElim | |
MapIntro | |
RoseElim |
Rose Trees: A tree with arbitrary branching at each node. See also, Definition 2 (page 2) of Parallel Implementation of Tree Skeletons, by D.B. Skillicorn 1995. |
RoseIntro |
Rose Trees: A tree with arbitrary branching at each node. See also, Definition 2 (page 2) of Parallel Implementation of Tree Skeletons, by D.B. Skillicorn 1995. |
SetElim | |
SetIntro | |
TreeElim | |
TreeIntro |
Types that can be created like a (binary) tree with leaves of type |
Functions
eager_tree_of_tree |
Produces a tree with the same structure as its input, but without
any articulations. Useful for |
filter_list_of_tree |
Filter the leaf elements of a tree using a user-provided predicate, |
filter_tree_of_tree |
Filter the leaf elements of a tree using a user-provided predicate, |
list_append | |
list_art | |
list_cons | |
list_demand |
Calls |
list_filter_eager |
Eagerly filters the list, guided by names in input list. Memoizes recursion for each name in input. |
list_filter_lazy |
Lazily filters the list, guided by names in input list. Creates lazy named thunks in output for each name in input. |
list_fold |
Ignores names; performs no memoization; use tree_fold_* for lists that could be long. |
list_gen | |
list_is_empty | |
list_map_eager |
Eagerly maps the list.
Uses (eager) memoization for each name in |
list_map_eager2 |
Eagerly maps the list. Uses (eager) memoization for each name in
|
list_map_lazy |
Lazily maps the list, guided by names in input list. Creates lazy named thunks in output for each name in input. |
list_merge |
Produce a lazy list that consists of merging two input lists.
The output is lazy to the extent that the input lists contain |
list_merge_wrapper | |
list_name | |
list_name_art_op | |
list_name_op | |
list_nil | |
list_of_tree |
List the leaf elements and names of a tree, in the given order, via a sequential, in-order traversal.
Direction |
list_of_vec |
Constructs a linked list that consists of elements and names, as given by the input vector (in that order). Not incremental; used only for setting up inputs for tests. |
list_pop | |
list_push | |
list_reverse |
Eagerly maps the list.
Uses (eager) memoization for each name in |
map_empty | |
map_find | |
map_fold | |
map_update | |
mergesort_list_of_tree |
Demand-driven sort over a tree's leaves, whose elements are |
mergesort_list_of_tree2 |
Demand-driven sort over a tree's leaves, whose elements are |
mergesort_list_of_tree3 |
Demand-driven sort over a tree's leaves, whose elements are |
monoid_of_tree |
Aggregates the leaf elements of a tree using a user-defined
monoid. The monoid consists of an identity element |
prune_tree_of_tree |
Produces a tree with the same structure as its input, but without any empty subtrees, and with articulations placed around the subtrees of named binary nodes. |
tree_fold_seq | |
tree_fold_up |
Fold over the structure of the tree, with results flowing up, from |
tree_fold_up_nm_dn |
Like |
tree_of_list | |
tree_of_list_rec | |
vec_of_list |
Attempts to force |