Data mapping für algebraische Datentypen

Mathematik (= Haskell):

data Tree a 
  = Leaf 
  | Node { key :: a, children :: [ Tree a ] }

Java (naiv)

class Node<A> {
  A key ; Node<A> [] children ;
}

Java (``richtig'')

interface Tree<A> { void insert (A x); ... }
class Leaf<A> implements Tree<A> { }
class Node<A> implements Tree<A> { }



Johannes Waldmann 2006-02-02