on 4ec595b help sign in
src/LAoP/Matrix/Internal.hs+18−21
since splitsnapshots
unifiedsplit
@@ -789,38 +789,35 @@ corr p = let f = fromF' p :: Matrix e q ()
789
789
790-- Pretty print
790-- Pretty print
791
791
792−prettyAux :: Show e => [[e]] -> [[e]] -> String
792+fill :: Show e => [[e]] -> String -> String
793−prettyAux [] _ = ""
794−prettyAux [[e]] m = "│ " ++ fill (show e) ++ " │\n"
795− where
796− v = fmap show m
797− widest = maximum $ fmap length v
798− fill str = replicate (widest - length str - 2) ' ' ++ str
793+fill m str = replicate (widest - length str - 2) ' ' ++ str
799−prettyAux [h] m = "│ " ++ fill (unwords $ map show h) ++ " │\n"
800 where
794 where
801− v = fmap show m
795+ v = fmap show m
802− widest = maximum $ fmap length v
796+ widest = maximum $ fmap length v
797+
798+fill2 :: Show e => Matrix e cols rows -> String -> String
803− fill str = replicate (widest - length str - 2) ' ' ++ str
799+fill2 m str = replicate (widest - length str - 2) ' ' ++ str
804−prettyAux (h : t) l = "│ " ++ fill (unwords $ map show h) ++ " │\n" ++
805− prettyAux t l
806 where
800 where
807− v = fmap show l
801+ v = map show (toList m)
808− widest = maximum $ fmap length v
802+ widest = maximum $ map length v
809− fill str = replicate (widest - length str - 2) ' ' ++ str
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
810
810
811-- | Matrix pretty printer
811-- | Matrix pretty printer
812pretty :: (CountableDims cols rows, Show e) => Matrix e cols rows -> String
812pretty :: (CountableDims cols rows, Show e) => Matrix e cols rows -> String
813pretty m = concat
813pretty m = concat
814 [ "┌ ", unwords (replicate (columns m) blank), " ┐\n"
814 [ "┌ ", unwords (replicate (columns m) blank), " ┐\n"
815 , unlines
815 , unlines
816− [ "│ " ++ unwords (fmap (\j -> fill $ show $ getElem i j m) [1..columns m]) ++ " │" | i <- [1..rows m] ]
816+ [ "│ " ++ unwords (fmap (\j -> fill2 m $ show $ getElem i j m) [1..columns m]) ++ " │" | i <- [1..rows m] ]
817 , "└ ", unwords (replicate (columns m) blank), " ┘"
817 , "└ ", unwords (replicate (columns m) blank), " ┘"
818 ]
818 ]
819 where
819 where
820− strings = map show (toList m)
821− widest = maximum $ map length strings
822− fill str = replicate (widest - length str) ' ' ++ str
823− blank = fill ""
820+ blank = fill2 m ""
824 safeGet i j m
821 safeGet i j m
825 | i > rows m || j > columns m || i < 1 || j < 1 = Nothing
822 | i > rows m || j > columns m || i < 1 || j < 1 = Nothing
826 | otherwise = Just $ unsafeGet i j m (toList m)
823 | otherwise = Just $ unsafeGet i j m (toList m)