Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data Tree a = E | Leaf a | Join (Tree a) (Tree a) deriving Show
- reduceT f e E = e
- reduceT f e (Leaf x) = x
- reduceT f e (Join l r) = let (l', r') = ( (reduceT f e l), (reduceT f e r) ) in f l' r'
- mapreduce f g e E = e
- mapreduce f g e (Leaf x) = f x
- mapreduce f g e (Join l r) = let (l',r') = ((mapreduce f g e l),(mapreduce f g e r))
- in g l' r'
- combine (a,b,c,d) (u,v,w,x) = (c + v, max b (d + v), max w (x + d), d + x)
- tupla x = (a,a,a,x)
- where
- a = max 0 x
- mcss t = (\(a,b,c,d) -> a) (mapreduce tupla combine (0,0,0,0) t)
- a = Join (Join (Join (Leaf 1) (Leaf (-1) )) (Leaf 3)) (Join (Leaf 4) (Leaf (-2)))
- sufijos :: Tree Int -> Tree (Tree Int)
- sufijos E = Leaf E
- sufijos (Leaf x) = Leaf (Leaf x)
- sufijos (Join l r) = E
- conSufijos :: Tree Int -> Tree (Int, Tree Int)
- conSufijos (Leaf x) = Leaf (x, sufijos (Leaf x) )
- conSufijos (Join l r) = Join (conSufijos l) (conSufijos r)
- maxT a = reduceT max (minBound :: Int) a
- a1 = Join (Join (Leaf 10) (Leaf 15)) (Leaf 20)
- b = Join (Join (Leaf (Join (Leaf 15) (Leaf 20))) (Leaf (Leaf 20) )) (Leaf E)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement