Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Math.Tools.Tree
Synopsis
- data Tree e n = Node {
- root_label :: n
- children :: [(e, Tree e n)]
- type Path e = [e]
- type Forest n e = [Tree e n]
- pattern LeafNode :: n -> Tree e n
- pattern Edge :: n -> e -> Tree e n -> Tree e n
- pattern BinNode :: n -> Tree Bool n -> Tree Bool n -> Tree Bool n
- joinLists :: Ord e => (a -> a -> a) -> [(e, a)] -> [(e, a)] -> [(e, a)]
- tlookup :: (Show e, Eq e, MonadFail m) => Tree e n -> Path e -> m (Tree e n)
- hasChildren :: Tree e n -> Bool
- mapTree :: (e -> e') -> (n -> n') -> Tree e n -> Tree e' n'
- mapEdges :: (e -> e') -> Tree e n -> Tree e' n
- leaf :: n -> Tree e n
- singleton :: n -> (e, n) -> Tree e n
- depthTree :: n -> [(e, n)] -> Tree e n
- treeNode :: n -> [(e, Tree e n)] -> Tree e n
- treeLevel :: Integer -> Forest n e -> [n]
- roots :: Forest n e -> [n]
- treeSumLevels :: Num n => Tree e n -> [n]
- forestSumLevels :: Num n => Forest n e -> [n]
- treeLevels :: Monoid n => Tree e n -> [n]
- treeFoldLevels :: ([n] -> n) -> Tree e n -> [n]
- forestFoldLevels :: ([n] -> n) -> Forest n e -> [n]
- nextLevel :: Forest n e -> Forest n e
- edgesBelowRoots :: Forest n e -> [e]
- edgesBelow :: Tree e n -> [e]
- forestBelow :: Tree e n -> Forest n e
- edgeCount :: Tree e n -> Int
- nodeCount :: Tree e n -> Int
- treeLeaves :: Tree e n -> [n]
- treeDepth :: Tree e n -> Int
- treeNodes :: Tree e n -> [n]
- treeEdges :: Tree e n -> [e]
- treePaths :: Monoid e => Tree e n -> [e]
- edgeCountFold :: Fold (Tree e n) Int
- nodeCountFold :: Fold (Tree e n) Int
- depthFold :: Fold (Tree e n) Int
- nodesFold :: Fold (Tree e n) [n]
- edgesFold :: Fold (Tree e n) [e]
- pathsFold :: Monoid e => Fold (Tree e n) [e]
- leavesFold :: Fold (Tree e n) [n]
- edgesStartingFrom :: Tree e n -> [e]
- childForest :: Tree e n -> Forest n e
- findChild :: (MonadFail m, Eq e, Show e) => e -> Tree e n -> m (Tree e n)
- treeFindSubtree :: (MonadFail m, Show e, Eq e) => Path e -> Tree e n -> m (Tree e n)
Documentation
Constructors
Node | |
Fields
|
Instances
Foldable (Tree e) Source # | |
Defined in Math.Tools.Tree Methods fold :: Monoid m => Tree e m -> m # foldMap :: Monoid m => (a -> m) -> Tree e a -> m # foldMap' :: Monoid m => (a -> m) -> Tree e a -> m # foldr :: (a -> b -> b) -> b -> Tree e a -> b # foldr' :: (a -> b -> b) -> b -> Tree e a -> b # foldl :: (b -> a -> b) -> b -> Tree e a -> b # foldl' :: (b -> a -> b) -> b -> Tree e a -> b # foldr1 :: (a -> a -> a) -> Tree e a -> a # foldl1 :: (a -> a -> a) -> Tree e a -> a # elem :: Eq a => a -> Tree e a -> Bool # maximum :: Ord a => Tree e a -> a # minimum :: Ord a => Tree e a -> a # | |
Traversable (Tree e) Source # | |
Monoid e => Applicative (Tree e) Source # | |
Functor (Tree e) Source # | |
(Monoid n, Monoid e) => Monoid (Tree e n) Source # | |
(Semigroup n, Semigroup e) => Semigroup (Tree e n) Source # | |
(Num n, Ord e, Semigroup e) => Num (Tree e n) Source # | |
(Show n, Show e) => Show (Tree e n) Source # | |
(Binary e, Binary n) => Binary (Tree e n) Source # | |
(VectorSpace n, Ord e) => VectorSpace (Tree e n) Source # | |
(PpShow n, PpShow e) => PpShow (Tree e n) Source # | |
Defined in Math.Tools.Tree | |
Builder (Tree e n) Source # | |
Visitor (Tree e n) Source # | |
type Scalar (Tree e n) Source # | |
Defined in Math.Tools.Tree | |
data Fold (Tree e n) a Source # | |
Defined in Math.Tools.Tree | |
data Unfold (Tree e n) a Source # | |
Defined in Math.Tools.Tree |
hasChildren :: Tree e n -> Bool Source #
depthTree :: n -> [(e, n)] -> Tree e n Source #
The result tree contains as many levels as the length of list. each level has just one node.
treeSumLevels :: Num n => Tree e n -> [n] Source #
forestSumLevels :: Num n => Forest n e -> [n] Source #
treeLevels :: Monoid n => Tree e n -> [n] Source #
treeFoldLevels :: ([n] -> n) -> Tree e n -> [n] Source #
forestFoldLevels :: ([n] -> n) -> Forest n e -> [n] Source #
edgesBelowRoots :: Forest n e -> [e] Source #
edgesBelow :: Tree e n -> [e] Source #
forestBelow :: Tree e n -> Forest n e Source #
treeLeaves :: Tree e n -> [n] Source #
leavesFold :: Fold (Tree e n) [n] Source #
edgesStartingFrom :: Tree e n -> [e] Source #
childForest :: Tree e n -> Forest n e Source #