![](haskell_icon.gif) | containers-0.2.0.0: Assorted concrete container types | Contents | Index |
|
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 2.3.0 |