<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Data.Tree.Class</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Data-Tree-Class.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >hxt-8.3.2: A collection of tools for processing XML with Haskell.</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Data.Tree.Class</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >experimental</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >Uwe Schmidt (uwe\@fh-wedel.de)</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >Interface definition for trees </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="#t%3ATree" >Tree</A > t <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkTree" >mkTree</A > :: a -> [t a] -> t a</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkLeaf" >mkLeaf</A > :: a -> t a</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisLeaf" >isLeaf</A > :: t a -> <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisInner" >isInner</A > :: t a -> <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetNode" >getNode</A > :: t a -> a</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetChildren" >getChildren</A > :: t a -> [t a]</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AchangeNode" >changeNode</A > :: (a -> a) -> t a -> t a</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AchangeChildren" >changeChildren</A > :: ([t a] -> [t a]) -> t a -> t a</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsetNode" >setNode</A > :: a -> t a -> t a</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsetChildren" >setChildren</A > :: [t a] -> t a -> t a</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfoldTree" >foldTree</A > :: (a -> [b] -> b) -> t a -> b</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnodesTree" >nodesTree</A > :: t a -> [a]</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdepthTree" >depthTree</A > :: t a -> <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcardTree" >cardTree</A > :: t a -> <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AformatTree" >formatTree</A > :: (a -> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A >) -> t a -> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A NAME="t:Tree" ><A NAME="t%3ATree" ></A ></A ><B >Tree</B > t <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >The interface for trees </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A NAME="v:mkTree" ><A NAME="v%3AmkTree" ></A ></A ><B >mkTree</B > :: a -> [t a] -> t a</TD ></TR ><TR ><TD CLASS="doc" >tree construction: a new tree is constructed by a node attribute and a list of children </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkLeaf" ><A NAME="v%3AmkLeaf" ></A ></A ><B >mkLeaf</B > :: a -> t a</TD ></TR ><TR ><TD CLASS="doc" ><P >leaf construction: leafs don't have any children </P ><P >definition: <TT > mkLeaf n = mkTree n [] </TT > </P ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:isLeaf" ><A NAME="v%3AisLeaf" ></A ></A ><B >isLeaf</B > :: t a -> <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >leaf test: list of children empty? </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:isInner" ><A NAME="v%3AisInner" ></A ></A ><B >isInner</B > :: t a -> <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >innner node test: <TT > not . isLeaf </TT > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getNode" ><A NAME="v%3AgetNode" ></A ></A ><B >getNode</B > :: t a -> a</TD ></TR ><TR ><TD CLASS="doc" >select node attribute </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getChildren" ><A NAME="v%3AgetChildren" ></A ></A ><B >getChildren</B > :: t a -> [t a]</TD ></TR ><TR ><TD CLASS="doc" >select children </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:changeNode" ><A NAME="v%3AchangeNode" ></A ></A ><B >changeNode</B > :: (a -> a) -> t a -> t a</TD ></TR ><TR ><TD CLASS="doc" >edit node attribute </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:changeChildren" ><A NAME="v%3AchangeChildren" ></A ></A ><B >changeChildren</B > :: ([t a] -> [t a]) -> t a -> t a</TD ></TR ><TR ><TD CLASS="doc" >edit children </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:setNode" ><A NAME="v%3AsetNode" ></A ></A ><B >setNode</B > :: a -> t a -> t a</TD ></TR ><TR ><TD CLASS="doc" >substitute node: <TT > setNode n = changeNode (const n) </TT > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:setChildren" ><A NAME="v%3AsetChildren" ></A ></A ><B >setChildren</B > :: [t a] -> t a -> t a</TD ></TR ><TR ><TD CLASS="doc" >substitute children: <TT > setChildren cl = changeChildren (const cl) </TT > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:foldTree" ><A NAME="v%3AfoldTree" ></A ></A ><B >foldTree</B > :: (a -> [b] -> b) -> t a -> b</TD ></TR ><TR ><TD CLASS="doc" >fold for trees </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:nodesTree" ><A NAME="v%3AnodesTree" ></A ></A ><B >nodesTree</B > :: t a -> [a]</TD ></TR ><TR ><TD CLASS="doc" >all nodes of a tree </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:depthTree" ><A NAME="v%3AdepthTree" ></A ></A ><B >depthTree</B > :: t a -> <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >depth of a tree </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:cardTree" ><A NAME="v%3AcardTree" ></A ></A ><B >cardTree</B > :: t a -> <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >number of nodes in a tree </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:formatTree" ><A NAME="v%3AformatTree" ></A ></A ><B >formatTree</B > :: (a -> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A >) -> t a -> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="doc" ><P >format tree for readable trace output </P ><P >a <EM >graphical</EM > representation of the tree in text format </P ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tree')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Tree" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Data-Tree-Class.html#t%3ATree" >Tree</A > <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree" >NTree</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.5.0</TD ></TR ></TABLE ></BODY ></HTML >