Multiplication tables: Difference between revisions
Content added Content deleted
(→{{header|Haskell}}: Separating data definition from string formatting) |
|||
Line 2,252: | Line 2,252: | ||
Or, making do without imports beyond the Prelude: |
Or, making do without imports beyond the Prelude, and separating data from formatting: |
||
<lang Haskell> |
<lang Haskell>multTable :: Int -> [[[Int]]] |
||
multTable n = (\x -> [x] : [] : ( |
|||
table n = concat <$> xs |
|||
⚫ | |||
⚫ | |||
<$> range)) |
|||
⚫ | |||
⚫ | |||
<$> range |
<$> range |
||
⚫ | |||
⚫ | |||
tableString :: [[[Int]]] -> String |
|||
tableString tbl = unlines $ (concat . (fmt <$>)) <$> tbl |
|||
⚫ | |||
⚫ | |||
fmt [ ] = pad |
|||
⚫ | |||
where |
where |
||
s = show e |
|||
pad = " " |
|||
⚫ | |||
⚫ | |||
s = show e |
|||
⚫ | |||
main :: IO () |
main :: IO () |
||
main = |
main = putStr $ tableString $ multTable 12</lang> |
||
{{Out}} |
{{Out}} |
||
<pre> 1 1 2 3 4 5 6 7 8 9 10 11 12 |
<pre> 1 1 2 3 4 5 6 7 8 9 10 11 12 |
||
2 4 6 8 10 12 14 16 18 20 22 24 |
2 4 6 8 10 12 14 16 18 20 22 24 |
||
3 9 12 15 18 21 24 27 30 33 36 |
3 9 12 15 18 21 24 27 30 33 36 |
||
4 16 20 24 28 32 36 40 44 48 |
4 16 20 24 28 32 36 40 44 48 |
||
5 25 30 35 40 45 50 55 60 |
5 25 30 35 40 45 50 55 60 |
||
6 36 42 48 54 60 66 72 |
6 36 42 48 54 60 66 72 |
||
7 49 56 63 70 77 84 |
7 49 56 63 70 77 84 |
||
8 64 72 80 88 96 |
8 64 72 80 88 96 |
||
9 81 90 99 108 |
9 81 90 99 108 |
||
10 100 110 120 |
10 100 110 120 |
||
11 121 132 |
11 121 132 |
||
12 144</pre> |
12 144</pre> |
||
=={{header|HicEst}}== |
=={{header|HicEst}}== |