on master help sign in
Fixed pretty print
commiteea6231c2f1af753a164106d8f318a84dbb60f9c authorArmando Santos <armandoifsantos@gmail.com> dateSat 6 Jun 2020, 00:13 (6 years ago) parent4ec595b
1 file changed+21−18
unifiedsplit
src/LAoP/Matrix/Internal.hs+21−18
src/LAoP/Matrix/Internal.hs+21−18
@@ -789,35 +789,38 @@ corr p = let f = fromF' p :: Matrix e q ()
789789
790790-- Pretty print
791791
792−fill :: Show e => [[e]] -> String -> String
793−fill m str = replicate (widest - length str - 2) ' ' ++ str
792+prettyAux :: Show e => [[e]] -> [[e]] -> String
793+prettyAux [] _ = ""
794+prettyAux [[e]] m = "│ " ++ fill (show e) ++ " │\n"
794795 where
795− v = fmap show m
796− widest = maximum $ fmap length v
797−
798−fill2 :: Show e => Matrix e cols rows -> String -> String
799−fill2 m str = replicate (widest - length str - 2) ' ' ++ str
796+ v = fmap show m
797+ widest = maximum $ fmap length v
798+ fill str = replicate (widest - length str - 2) ' ' ++ str
799+prettyAux [h] m = "│ " ++ fill (unwords $ map show h) ++ " │\n"
800800 where
801− v = map show (toList m)
802− widest = maximum $ map length v
803−
804−prettyAux :: Show e => [[e]] -> [[e]] -> String
805−prettyAux [] _ = ""
806−prettyAux [[e]] m = "│ " ++ fill m (show e) ++ " │\n"
807−prettyAux [h] m = "│ " ++ fill m (unwords $ map show h) ++ " │\n"
808−prettyAux (h : t) m = "│ " ++ fill m (unwords $ map show h) ++ " │\n" ++
809− prettyAux t m
801+ v = fmap show m
802+ widest = maximum $ fmap length v
803+ fill str = replicate (widest - length str - 2) ' ' ++ str
804+prettyAux (h : t) l = "│ " ++ fill (unwords $ map show h) ++ " │\n" ++
805+ prettyAux t l
806+ where
807+ v = fmap show l
808+ widest = maximum $ fmap length v
809+ fill str = replicate (widest - length str - 2) ' ' ++ str
810810
811811-- | Matrix pretty printer
812812pretty :: (CountableDims cols rows, Show e) => Matrix e cols rows -> String
813813pretty m = concat
814814 [ "┌ ", unwords (replicate (columns m) blank), " ┐\n"
815815 , unlines
816− [ "│ " ++ unwords (fmap (\j -> fill2 m $ show $ getElem i j m) [1..columns m]) ++ " │" | i <- [1..rows m] ]
816+ [ "│ " ++ unwords (fmap (\j -> fill $ show $ getElem i j m) [1..columns m]) ++ " │" | i <- [1..rows m] ]
817817 , "└ ", unwords (replicate (columns m) blank), " ┘"
818818 ]
819819 where
820− blank = fill2 m ""
820+ strings = map show (toList m)
821+ widest = maximum $ map length strings
822+ fill str = replicate (widest - length str) ' ' ++ str
823+ blank = fill ""
821824 safeGet i j m
822825 | i > rows m || j > columns m || i < 1 || j < 1 = Nothing
823826 | otherwise = Just $ unsafeGet i j m (toList m)