Jump to content

Multiplication tables: Difference between revisions

m
→‎{{header|Haskell}}: Adjusted tabulation function
m (→‎{{header|Haskell}}: (Slight rearrangement))
m (→‎{{header|Haskell}}: Adjusted tabulation function)
Line 2,320:
 
=={{header|Haskell}}==
<lang haskell>import Data.ListMonoid (maximumBy(<>))
import Data.OrdList (comparingintercalate, transpose)
import Data.Monoid ((<>))
 
multTable :: Int -> [[String]]
Line 2,338 ⟶ 2,337:
]
 
tableStringtable :: String -> [[String]] -> [String]
table delim rows =
tableString tbl = unlines $ (unwords . (justifyRight colWidth ' ' <$>)) <$> tbl
let justifyRight n c s = drop (length s) (replicate n c <> s)
where
in intercalate delim <$>
colWidth = length $ (last . last) tbl
transpose
justifyRight n c s = drop (length s) (replicate n c <> s)
((\col -> justifyRight (maximum (length <$> col)) ' ' <$> col) <$>
transpose rows)
 
main :: IO ()
main = putStrputStrLn $(unlines (tableStringtable ." " (multTable) 12)))</lang>
 
{{Out}}
<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
3: 9 12 15 18 21 24 27 30 33 36
4: 16 20 24 28 32 36 40 44 48
5: 25 30 35 40 45 50 55 60
6: 36 42 48 54 60 66 72
7: 49 56 63 70 77 84
8: 64 72 80 88 96
9: 81 90 99 108
10: 100 110 120
11: 121 132
12: 144</pre>
 
9,659

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.