diff options
Diffstat (limited to 'packages/base/src/Internal/IO.hs')
-rw-r--r-- | packages/base/src/Internal/IO.hs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/packages/base/src/Internal/IO.hs b/packages/base/src/Internal/IO.hs index e594a1c..a899cfd 100644 --- a/packages/base/src/Internal/IO.hs +++ b/packages/base/src/Internal/IO.hs | |||
@@ -16,16 +16,26 @@ module Internal.IO ( | |||
16 | loadMatrix, loadMatrix', saveMatrix | 16 | loadMatrix, loadMatrix', saveMatrix |
17 | ) where | 17 | ) where |
18 | 18 | ||
19 | import Internal.Tools | ||
20 | import Internal.Devel | 19 | import Internal.Devel |
21 | import Internal.Vector | 20 | import Internal.Vector |
22 | import Internal.Matrix | 21 | import Internal.Matrix |
23 | import Internal.Vectorized | 22 | import Internal.Vectorized |
24 | import Text.Printf(printf) | 23 | import Text.Printf(printf) |
25 | import Data.List(intersperse) | 24 | import Data.List(intersperse,transpose) |
26 | import Data.Complex | 25 | import Data.Complex |
27 | 26 | ||
28 | 27 | ||
28 | -- | Formatting tool | ||
29 | table :: String -> [[String]] -> String | ||
30 | table sep as = unlines . map unwords' $ transpose mtp | ||
31 | where | ||
32 | mt = transpose as | ||
33 | longs = map (maximum . map length) mt | ||
34 | mtp = zipWith (\a b -> map (pad a) b) longs mt | ||
35 | pad n str = replicate (n - length str) ' ' ++ str | ||
36 | unwords' = concat . intersperse sep | ||
37 | |||
38 | |||
29 | 39 | ||
30 | {- | Creates a string from a matrix given a separator and a function to show each entry. Using | 40 | {- | Creates a string from a matrix given a separator and a function to show each entry. Using |
31 | this function the user can easily define any desired display function: | 41 | this function the user can easily define any desired display function: |