on master help sign in
prettyPrint now prettier
ad2d39cArmando Santos
src/Matrix/Type.hs+14−6
@@ -517,11 +517,19 @@ corr p = let f = fromF p :: Matrix e q q
517prettyAux :: Show e => [[e]] -> String
517prettyAux :: Show e => [[e]] -> String
518prettyAux [] = ""
518prettyAux [] = ""
519prettyAux [[e]] = show e
519prettyAux [[e]] = show e
520−prettyAux [h] = concat $ intersperse " " (map show h)
520+prettyAux [h] = "│ " ++ unwords (map show h) ++ " │\n"
521−prettyAux (h : t) = concat (intersperse " " (map show h)) ++ "\n" ++ prettyAux t
521+prettyAux (h : t) = "│ " ++ unwords (map show h) ++ " │\n" ++
522−
522+ prettyAux t
523+
523−pretty :: Show e => Matrix e cols rows -> String
524+pretty :: (KnownNat (Count cols), Show e) => Matrix e cols rows -> String
525+pretty m = "┌ " ++ unwords (replicate (columns m) blank) ++ " ┐\n" ++
524−pretty = prettyAux . toLists
526+ (prettyAux . toLists $ m) ++
527+ "└ " ++ unwords (replicate (columns m) blank) ++ " ┘"
528+ where
529+ v = fmap show (toList m)
530+ widest = maximum $ fmap length v
531+ fill str = replicate (widest - length str) ' ' ++ str
532+ blank = fill ""
525
533
526−prettyPrint :: Show e => Matrix e cols rows -> IO ()
534+prettyPrint :: (KnownNat (Count cols), Show e) => Matrix e cols rows -> IO ()
527prettyPrint = putStrLn . pretty
535prettyPrint = putStrLn . pretty