Copyright | (c) The University of Glasgow 2002 |
---|---|

License | BSD-style (see the file libraries/base/LICENSE) |

Maintainer | libraries@haskell.org |

Stability | experimental |

Portability | portable |

Safe Haskell | Trustworthy |

Language | Haskell98 |

Multi-way trees (*aka* rose trees) and forests.

Multi-way trees, also known as *rose trees*.

type Forest a = [Tree a] Source

drawTree :: Tree String -> String Source

Neat 2-dimensional drawing of a tree.

drawForest :: Forest String -> String Source

Neat 2-dimensional drawing of a forest.

flatten :: Tree a -> [a] Source

The elements of a tree in pre-order.

levels :: Tree a -> [[a]] Source

Lists of nodes at each level of the tree.

unfoldTree :: (b -> (a, [b])) -> b -> Tree a Source

Build a tree from a seed value

unfoldForest :: (b -> (a, [b])) -> [b] -> Forest a Source

Build a forest from a list of seed values

unfoldTreeM :: Monad m => (b -> m (a, [b])) -> b -> m (Tree a) Source

Monadic tree builder, in depth-first order

unfoldForestM :: Monad m => (b -> m (a, [b])) -> [b] -> m (Forest a) Source

Monadic forest builder, in depth-first order

unfoldTreeM_BF :: Monad m => (b -> m (a, [b])) -> b -> m (Tree a) Source

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) Source

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*.

© The University of Glasgow and others

Licensed under a BSD-style license (see top of the page).

https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/containers-0.5.6.2/Data-Tree.html