|
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.Objectfj.data.Tree<A>
public final class Tree<A>
Provides a lazy, immutable, non-empty, multi-way 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 2-dimensional 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 pre-order. |
|
Stream<A> |
flatten()
Puts the elements of the tree into a Stream, in pre-order. |
|
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()
First-class constructor of trees. |
|
static
|
node(A root,
List<Tree<A>> forest)
Creates a new n-ary 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 2-dimensional 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 | ||||||||