[new examples
martin.hofmann@uni-bamberg.de**20091007091031] hunk ./expl/Examples.hs 5
+-- Ackermann nach Peter:
+-- ack    Z     x  = S x
+-- ack (S x)    Z  = ack x (S Z)
+-- ack (S x) (S y) = ack x (ack (S x) y)
+ack :: Peano -> Peano -> Peano
+ack      Z                      Z           =                     (S Z)           --(1, 0) =  1
+ack      Z                   (S Z)          =                   (S(S Z))          --(1, 1) =  2
+ack      Z                 (S(S Z))         =                 (S(S(S Z)))         --(1, 2) =  3
+ack      Z               (S(S(S Z)))        =               (S(S(S(S Z))))        --(1, 3) =  4
+ack      Z             (S(S(S(S Z))))       =             (S(S(S(S(S Z)))))       --(1, 4) =  5
+ack      Z           (S(S(S(S(S Z)))))      =           (S(S(S(S(S(S Z))))))      --(1, 5) =  6
+ack      Z         (S(S(S(S(S(S Z))))))     =         (S(S(S(S(S(S(S Z)))))))     --(1, 6) =  7
+ack      Z       (S(S(S(S(S(S(S Z)))))))    =       (S(S(S(S(S(S(S(S Z))))))))    --(1, 7) =  8
+ack      Z     (S(S(S(S(S(S(S(S Z))))))))   =     (S(S(S(S(S(S(S(S(S Z)))))))))   --(1, 8) =  9
+ack      Z   (S(S(S(S(S(S(S(S(S Z)))))))))  =   (S(S(S(S(S(S(S(S(S(S Z))))))))))  --(1, 9) = 10
+ack      Z (S(S(S(S(S(S(S(S(S(S Z)))))))))) = (S(S(S(S(S(S(S(S(S(S(S Z))))))))))) --(1,10) = 11
+ack   (S Z)                     Z           =                   (S(S Z))          --(1, 0) =  2
+ack   (S Z)                  (S Z)          =                 (S(S(S Z)))         --(1, 1) =  3
+ack   (S Z)                (S(S Z))         =               (S(S(S(S Z))))        --(1, 2) =  4
+ack   (S Z)              (S(S(S Z)))        =             (S(S(S(S(S Z)))))       --(1, 3) =  5
+ack   (S Z)            (S(S(S(S Z))))       =           (S(S(S(S(S(S Z))))))      --(1, 4) =  6
+ack   (S Z)          (S(S(S(S(S Z)))))      =         (S(S(S(S(S(S(S Z)))))))     --(1, 5) =  7
+ack   (S Z)        (S(S(S(S(S(S Z))))))     =       (S(S(S(S(S(S(S(S Z))))))))    --(1, 6) =  8
+ack   (S Z)      (S(S(S(S(S(S(S Z)))))))    =     (S(S(S(S(S(S(S(S(S Z)))))))))   --(1, 7) =  9
+ack   (S Z)    (S(S(S(S(S(S(S(S Z))))))))   =   (S(S(S(S(S(S(S(S(S(S Z))))))))))  --(1, 8) = 10
+ack   (S Z)  (S(S(S(S(S(S(S(S(S Z)))))))))  = (S(S(S(S(S(S(S(S(S(S(S Z))))))))))) --(1, 9) = 11
+ack (S(S Z))                    Z           =                 (S(S(S Z)))         --(2, 0) =  3
+ack (S(S Z))                 (S Z)          =             (S(S(S(S(S Z)))))       --(2, 1) =  5
+ack (S(S Z))               (S(S Z))         =         (S(S(S(S(S(S(S Z)))))))     --(2, 2) =  7
+ack (S(S Z))             (S(S(S Z)))        =     (S(S(S(S(S(S(S(S(S Z)))))))))   --(2, 3) =  9
+ack (S(S Z))           (S(S(S(S Z))))       = (S(S(S(S(S(S(S(S(S(S(S Z))))))))))) --(2, 4) = 11
+
+
hunk ./expl/Examples.hs 53
-add1 :: [Peano] -> [Peano]
-add1 [] = []
-add1 [Z] = [S Z]
-add1 [S Z] = [S(S Z)]
-add1 [S(S Z)] = [S(S(S Z))]
-add1 [Z,Z] = [S Z,S Z]
-add1 [Z,S Z] = [S Z,S(S Z)]
-add1 [Z,S(S Z)] = [S Z,S(S(S Z))]
-add1 [S Z,Z] = [S(S Z),S Z]
-add1 [S Z,S Z] = [S(S Z),S(S Z)]
-add1 [S Z,S(S Z)] = [S(S Z),S(S(S Z))]
+addN :: Peano -> [Peano] -> [Peano]
+addN      Z   [] = []
+addN   (S Z)  [] = []
+addN (S(S Z)) [] = []
+addN      Z   [Z] = [Z]
+addN      Z   [S Z] = [S Z]
+addN      Z   [S(S Z)] = [S(S Z)]
+addN      Z   [Z,(S Z)] = [Z,(S Z)]
+addN      Z   [(S Z),Z] = [(S Z),Z]
+addN   (S Z)  [Z,(S Z)] = [S Z,S(S Z)]
+addN   (S Z)  [(S Z),Z] = [S(S Z),S Z]
+addN   (S Z)  [Z] = [S Z]
+addN   (S Z)  [S Z] = [S(S Z)]
+addN   (S Z)  [S(S Z)] = [S(S(S Z))]
+addN (S(S Z)) [Z] = [S(S Z)]
+addN (S(S Z)) [S Z] = [S(S(S Z))]
+addN (S(S Z)) [S(S Z)] = [S(S(S(S Z)))]
+addN (S(S Z)) [Z,(S Z)] = [S(S Z),S(S(S Z))]
+addN (S(S Z)) [S(S Z),Z] = [S(S(S(S Z))),S(S Z)]
hunk ./expl/Examples.hs 312
-lasts [[x,c,d],[e,f],[g]] = [d,f,g]
+--lasts [[x,c,d],[e,f],[g]] = [d,f,g]
hunk ./expl/Examples.hs 403
+powset :: [a] -> [[a]]
+powset [] = [[]]
+powset [a] = [[a],[]]
+powset [a,b] = [[a,b],[a],[b],[]]
+powset [a,b,c] = [[a,b,c],[a,b],[a,c],[a],[b,c],[b],[c],[]]
+--powset [a,b,c,d] = [[a,b,c,d],[a,b,c],[a,b,d],[a,b],[a,c,d],[a,c],[a,d],[a],[b,c,d],[b,c],[b,d],[b],[c,d],[c],[d],[]]
hunk ./expl/Examples.hs 410
+powapp  :: [a] -> [a] -> [a]
+powapp [a][c]      = [a,c]
+powapp [a,b][c,d]  = [a,b,c,d]
+powapp [a,b,c,d][e,f,g,h]  = [a,b,c,d,e,f,g,h]
+--powapp [a,b,c,d,e,f,g,h][i,j,k,l,m,n,o,p]  = [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p]
hunk ./expl/Examples.hs 432
+--shiftl [a,b,c,d,e] = [b,c,d,e,a]
+--shiftl [a,b,c,d,e,f] = [b,c,d,e,f,a]
+--shiftl [a,b,c,d,e,f,g] = [b,c,d,e,f,g,a]
+--shiftl [a,b,c,d,e,f,g,h] = [b,c,d,e,f,g,h,a]
hunk ./expl/Examples.hs 560
-data Object = O1 | O2 | O3
-data State = START | LOD Object State | UNL Object State | FLY State
+data Object = O1 | O2 | O3 deriving (Show)
+data State = START | LOD Object State | UNL Object State | FLY State deriving (Show)
hunk ./expl/Examples.hs 568
-data Disc = D0 | D Disc
-data Action = NOOP | MV Disc Peg Peg Action
-data Peg = PegA | PegB | PegC
+data Disc = D0 | D Disc deriving (Show)
+data Action = NOOP | MV Disc Peg Peg Action deriving (Show)
+data Peg = PegA | PegB | PegC deriving (Show)
hunk ./expl/Examples.hs 573
-hanoi D0 src auc dst s        = MV D0 src dst s
+hanoi D0 src aux dst s        = MV D0 src dst s