
Copyright 2008  2010 Tony Morris, Runar Bjarnason, Tom Adams, Brad Clow, Ricky Clarkson, Nick Partridge, Jason Zaugg This software is released under an open source BSD licence. 

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object fj.data.Tree<A>
public final class Tree<A>
Provides a lazy, immutable, nonempty, multiway tree (a rose tree).
Method Summary  


cobind(F<Tree<A>,B> f)
Applies the given function to all subtrees of this tree, returning a tree of the results (comonad pattern). 

Tree<Tree<A>> 
cojoin()
Expands this tree into a tree of trees, with this tree as the root label, and subtrees as the labels of child nodes (comonad pattern). 

java.lang.String 
draw(Show<A> s)
Draws a 2dimensional representation of a tree. 

static

flatten_()
flatten :: Tree a > [a] flatten t = squish t [] where squish (Node x ts) xs = x:Prelude.foldr squish xs ts Puts the elements of the tree into a Stream, in preorder. 

Stream<A> 
flatten()
Puts the elements of the tree into a Stream, in preorder. 

static

fmap_()
Provides a transformation to lift any function so that it maps over Trees. 


fmap(F<A,B> f)
Maps the given function over this tree. 

static

foldMap_(F<A,B> f,
Monoid<B> m)
Provides a function that folds a tree with the given monoid. 


foldMap(F<A,B> f,
Monoid<B> m)
Folds this tree using the given monoid. 

java.util.Iterator<A> 
iterator()
Returns an iterator for this tree. 

static

leaf(A root)
Creates a nullary tree. 

Stream<Stream<A>> 
levels()
Provides a stream of the elements of the tree at each level, in level order. 

static

node()
Firstclass constructor of trees. 

static

node(A root,
List<Tree<A>> forest)
Creates a new nary given a root and a subforest of length n. 

static

node(A root,
P1<Stream<Tree<A>>> forest)
Creates a new tree given a root and a (potentially infinite) subforest. 

static

node(A root,
Stream<Tree<A>> forest)
Creates a new tree given a root and a (potentially infinite) subforest. 

static

root_()
Provides a transformation from a tree to its root. 

A 
root()
Returns the root element of the tree. 

static

show2D(Show<A> s)
Provides a show instance that draws a 2dimensional representation of a tree. 

static

subForest_()
Provides a transformation from a tree to its subforest. 

P1<Stream<Tree<A>>> 
subForest()
Returns a stream of the tree's subtrees. 

java.util.Collection<A> 
toCollection()
Projects an immutable collection of this tree. 

static

unfoldTree(F<B,P2<A,P1<Stream<B>>>> f)
Builds a tree from a seed value. 


zipWith(Tree<B> bs,
F<A,F<B,C>> f)
Zips this tree with another, using the given function. 


zipWith(Tree<B> bs,
F2<A,B,C> f)
Zips this tree with another, using the given function. 
Methods inherited from class java.lang.Object 

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
Method Detail 

public java.util.Iterator<A> iterator()
for
each loop.
iterator
in interface java.lang.Iterable<A>
public static <A> Tree<A> leaf(A root)
root
 The root element of the tree.
public static <A> Tree<A> node(A root, P1<Stream<Tree<A>>> forest)
root
 The root element of the tree.forest
 A stream of the tree's subtrees.
public static <A> Tree<A> node(A root, Stream<Tree<A>> forest)
root
 The root element of the tree.forest
 A stream of the tree's subtrees.
public static <A> Tree<A> node(A root, List<Tree<A>> forest)
root
 The root element of the tree.forest
 A list of the tree's subtrees.
public static <A> F<A,F<P1<Stream<Tree<A>>>,Tree<A>>> node()
public A root()
public P1<Stream<Tree<A>>> subForest()
public static <A> F<Tree<A>,A> root_()
public static <A> F<Tree<A>,P1<Stream<Tree<A>>>> subForest_()
public Stream<A> flatten()
public static <A> F<Tree<A>,Stream<A>> flatten_()
public Stream<Stream<A>> levels()
public <B> Tree<B> fmap(F<A,B> f)
f
 The function to map over this tree.
public static <A,B> F<F<A,B>,F<Tree<A>,Tree<B>>> fmap_()
public <B> B foldMap(F<A,B> f, Monoid<B> m)
f
 A transformation from this tree's elements, to the monoid.m
 The monoid to fold this tree with.
public java.util.Collection<A> toCollection()
public static <A,B> F<Tree<A>,B> foldMap_(F<A,B> f, Monoid<B> m)
f
 A transformation from a tree's elements to the monoid.m
 A monoid to fold the tree with.
public static <A,B> F<B,Tree<A>> unfoldTree(F<B,P2<A,P1<Stream<B>>>> f)
f
 A function with which to build the tree.
public <B> Tree<B> cobind(F<Tree<A>,B> f)
f
 A function to bind across all the subtrees of this tree.
public Tree<Tree<A>> cojoin()
public java.lang.String draw(Show<A> s)
s
 A show instance for the elements of the tree.
public static <A> Show<Tree<A>> show2D(Show<A> s)
s
 A show instance for the elements of the tree.
public <B,C> Tree<C> zipWith(Tree<B> bs, F2<A,B,C> f)
bs
 A tree to zip this tree with.f
 A function with which to zip together the two trees.
public <B,C> Tree<C> zipWith(Tree<B> bs, F<A,F<B,C>> f)
bs
 A tree to zip this tree with.f
 A function with which to zip together the two trees.

Copyright 2008  2010 Tony Morris, Runar Bjarnason, Tom Adams, Brad Clow, Ricky Clarkson, Nick Partridge, Jason Zaugg This software is released under an open source BSD licence. 

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 