Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tamanho1 = cataNat (either (tamanho1) (add (p1) (p1.p2)))
- --tamanho1 :: QTree a -> Int
- --tamanho1 (Cell a b c) = b
- --tamanho1 (Block a b c d) = tamanho1(a) + tamanho1(b)
- tamanho2 :: QTree a -> Int
- tamanho2 (Cell a b c) = c
- tamanho2 (Block a b c d) = tamanho2(a) + tamanho2(c)
- auxcompressQTree :: QTree a -> Int -> QTree a
- auxcompressQTree y 0 = y
- auxcompressQTree y k = auxcompressQTree (g (y)) (k-1)
- g b@(Cell a x y) = b
- g b@(Block (Cell a _ _) (Cell _ _ _) (Cell _ _ _) (Cell _ _ _)) = let x = tamanho1 b
- y = tamanho2 b
- in (Cell a (fromIntegral(x)) y)
- g h@(Block a b c d) = Block(g a) (g b) (g c) (g d)
- compressQTree k y = auxcompressQTree y k
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement