Multiplication tables: Difference between revisions
Content added Content deleted
m (→{{header|Haskell}}: (Slight rearrangement)) |
m (→{{header|Haskell}}: Adjusted tabulation function) |
||
Line 2,320: | Line 2,320: | ||
=={{header|Haskell}}== |
=={{header|Haskell}}== |
||
<lang haskell>import Data. |
<lang haskell>import Data.Monoid ((<>)) |
||
import Data. |
import Data.List (intercalate, transpose) |
||
import Data.Monoid ((<>)) |
|||
multTable :: Int -> [[String]] |
multTable :: Int -> [[String]] |
||
Line 2,338: | Line 2,337: | ||
] |
] |
||
table :: String -> [[String]] -> [String] |
|||
table delim rows = |
|||
tableString tbl = unlines $ (unwords . (justifyRight colWidth ' ' <$>)) <$> tbl |
|||
⚫ | |||
where |
|||
in intercalate delim <$> |
|||
colWidth = length $ (last . last) tbl |
|||
transpose |
|||
⚫ | |||
((\col -> justifyRight (maximum (length <$> col)) ' ' <$> col) <$> |
|||
transpose rows) |
|||
main :: IO () |
main :: IO () |
||
main = |
main = putStrLn (unlines (table " " (multTable 12)))</lang> |
||
{{Out}} |
{{Out}} |
||
<pre> 1: |
<pre> 1: 1 2 3 4 5 6 7 8 9 10 11 12 |
||
2: |
2: 4 6 8 10 12 14 16 18 20 22 24 |
||
3: |
3: 9 12 15 18 21 24 27 30 33 36 |
||
4: |
4: 16 20 24 28 32 36 40 44 48 |
||
5: |
5: 25 30 35 40 45 50 55 60 |
||
6: |
6: 36 42 48 54 60 66 72 |
||
7: |
7: 49 56 63 70 77 84 |
||
8: |
8: 64 72 80 88 96 |
||
9: |
9: 81 90 99 108 |
||
10: |
10: 100 110 120 |
||
11: |
11: 121 132 |
||
12: 144</pre> |
12: 144</pre> |
||