on 4ec595b help sign in
1 file changed+18−21
since splitsnapshots
unifiedsplit
src/LAoP/Matrix/Internal.hs+18−21
src/LAoP/Matrix/Internal.hs+18−21
@@ -789,38 +789,35 @@ corr p = let f = fromF' p :: Matrix e q ()
789789
790790-- Pretty print
791791
792−prettyAux :: Show e => [[e]] -> [[e]] -> 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
799−prettyAux [h] m = "│ " ++ fill (unwords $ map show h) ++ " │\n"
792+fill :: Show e => [[e]] -> String -> String
793+fill m str = replicate (widest - length str - 2) ' ' ++ str
800794 where
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
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
806800 where
807− v = fmap show l
808− widest = maximum $ fmap length v
809− fill str = replicate (widest - length str - 2) ' ' ++ str
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
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 -> 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] ]
817817 , "└ ", unwords (replicate (columns m) blank), " ┘"
818818 ]
819819 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 ""
824821 safeGet i j m
825822 | i > rows m || j > columns m || i < 1 || j < 1 = Nothing
826823 | otherwise = Just $ unsafeGet i j m (toList m)