tree-traversals: Functions and newtype wrappers for traversing Trees
The tree-traversals package defines in-order, pre-order, post-order, level-order, and reversed level-order traversals for tree-like types:
inorder, preorder, postorder, levelorder, rlevelorder :: (TreeLike tree, Applicative f) => (a -> f b) -> tree a -> f (tree b)
The package also provides newtype wrappers for the various traversals so they
may be used with traverse
, i.e.
traverse f (InOrder tree) = inorder f tree traverse f (PreOrder tree) = preorder f tree traverse f (PostOrder tree) = postorder f tree traverse f (LevelOrder tree) = levelorder f tree traverse f (RLevelOrder tree) = rlevelorder f tree
To implement the various orders, the tree-traversals package provides the
Control.Applicative.Phases.Phases
applicative transformer for organizing effects
into distinct phases.
Instances of Data.Traversable.TreeLike.TreeLike
are provided for
rose trees (Data.Tree.Tree
),
binary trees (Data.BinaryTree.BinaryTree
),
forests (Data.Traversable.TreeLike.Forest
),
and algebraic combinations of trees (
,
Data.Functor.Compose.Compose
outerTree innerTree
, Data.Functor.Product
fstTree sndTree
).Data.Functor.Sum
leftTree rightTree
[Skip to Readme]
Flags
Manual Flags
Name | Description | Default |
---|---|---|
development | Enable all warnings and upgrade warnings to errors | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- tree-traversals-0.1.3.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.1.0.0, 0.1.1.0, 0.1.2.0, 0.1.3.0 |
---|---|
Change log | ChangeLog.md |
Dependencies | base (>=4.10 && <4.20), containers [details] |
License | CC0-1.0 |
Author | Noah Luck Easterly |
Maintainer | noah.easterly@gmail.com |
Category | Data |
Home page | https://github.com/rampion/tree-traversals |
Source repo | head: git clone git://github.com/rampion/tree-traversals.git this: git clone git://github.com/rampion/tree-traversals.git(tag v0.1.0.0) |
Uploaded | by NoahEasterly at 2024-09-13T03:01:12Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Downloads | 1156 total (16 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2024-09-13 [all 1 reports] |