|
| Data.Tree | | Portability | portable | | Stability | experimental | | Maintainer | libraries@haskell.org |
|
|
|
|
|
| Description |
| Multi-way trees (aka rose trees) and forests.
|
|
| Synopsis |
|
|
|
| Documentation |
|
| data Tree a |
| Multi-way trees, also known as rose trees.
| | Constructors | | Node | | | rootLabel :: a | label value
| | subForest :: (Forest a) | zero or more child trees
|
|
| Instances | |
|
|
| type Forest a = [Tree a] |
|
| Two-dimensional drawing
|
|
| drawTree :: Tree String -> String |
| Neat 2-dimensional drawing of a tree.
|
|
| drawForest :: Forest String -> String |
| Neat 2-dimensional drawing of a forest.
|
|
| Extraction
|
|
| flatten :: Tree a -> [a] |
| The elements of a tree in pre-order.
|
|
| levels :: Tree a -> [[a]] |
| Lists of nodes at each level of the tree.
|
|
| Building trees
|
|
| unfoldTree :: (b -> (a, [b])) -> b -> Tree a |
| Build a tree from a seed value
|
|
| unfoldForest :: (b -> (a, [b])) -> [b] -> Forest a |
| Build a forest from a list of seed values
|
|
| unfoldTreeM :: Monad m => (b -> m (a, [b])) -> b -> m (Tree a) |
| Monadic tree builder, in depth-first order
|
|
| unfoldForestM :: Monad m => (b -> m (a, [b])) -> [b] -> m (Forest a) |
| Monadic forest builder, in depth-first order
|
|
| unfoldTreeM_BF :: Monad m => (b -> m (a, [b])) -> b -> m (Tree a) |
| Monadic tree builder, in breadth-first order,
using an algorithm adapted from
Breadth-First Numbering: Lessons from a Small Exercise in Algorithm Design,
by Chris Okasaki, ICFP'00.
|
|
| unfoldForestM_BF :: Monad m => (b -> m (a, [b])) -> [b] -> m (Forest a) |
| Monadic forest builder, in breadth-first order,
using an algorithm adapted from
Breadth-First Numbering: Lessons from a Small Exercise in Algorithm Design,
by Chris Okasaki, ICFP'00.
|
|
| Produced by Haddock version 0.8 |