| hxt-8.5.2: 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