| hxt-8.5.4: A collection of tools for processing XML with Haskell. | Source code | Contents | Index
Data.Tree.Class |
Portability | portable
Stability | experimental
Maintainer | Uwe Schmidt (uwe\@fh-wedel.de)
Description
Interface definition for trees
Synopsis
class Tree t where
mkTree :: a -> [t a] -> t a
mkLeaf :: a -> t a
isLeaf :: t a -> Bool
isInner :: t a -> Bool
getNode :: t a -> a
getChildren :: t a -> [t a]
changeNode :: (a -> a) -> t a -> t a
changeChildren :: ([t a] -> [t a]) -> t a -> t a
setNode :: a -> t a -> t a
setChildren :: [t a] -> t a -> t a
foldTree :: (a -> [b] -> b) -> t a -> b
nodesTree :: t a -> [a]
depthTree :: t a -> Int
cardTree :: t a -> Int
formatTree :: (a -> String) -> t a -> String
Documentation
class Tree t where | Source
The interface for trees
Methods
mkTree :: a -> [t a] -> t a | Source
tree construction: a new tree is constructed by a node attribute and a list of children
mkLeaf :: a -> t a | Source
leaf construction: leafs don't have any children definition: `mkLeaf n = mkTree n []`
isLeaf :: t a -> Bool | Source
leaf test: list of children empty?
isInner :: t a -> Bool | Source
innner node test: `not . isLeaf`
getNode :: t a -> a | Source
select node attribute
getChildren :: t a -> [t a] | Source
select children
changeNode :: (a -> a) -> t a -> t a | Source
edit node attribute
changeChildren :: ([t a] -> [t a]) -> t a -> t a | Source
edit children
setNode :: a -> t a -> t a | Source
substitute node: `setNode n = changeNode (const n)`
setChildren :: [t a] -> t a -> t a | Source
substitute children: `setChildren cl = changeChildren (const cl)`
foldTree :: (a -> [b] -> b) -> t a -> b | Source
fold for trees
nodesTree :: t a -> [a] | Source
all nodes of a tree
depthTree :: t a -> Int | Source
depth of a tree
cardTree :: t a -> Int | Source
number of nodes in a tree
formatTree :: (a -> String) -> t a -> String | Source
format tree for readable trace output a graphical representation of the tree in text format
Instances
Tree NTree
Produced by Haddock version 2.4.2