Multiplication tables: Difference between revisions
m
→JS ES6: Updated primitives
m (→JS ES6: Updated primitives) |
|||
Line 3,919:
====ES6====
<lang JavaScript>(() => {
// multTable :: Int -> Int -> [[String]]
const multTable = m => n => {
const xs = enumFromTo(m)(n);
return [
[
...xs.flatMap(
x => [
[x, ...xs.flatMap(
y => y < x ?
[""]
) : [str(x * y)]
)]
]
Line 3,936 ⟶ 3,941:
};
//
// main :: () -> IO String
const main = () =>
wikiTable({
"table-layout:fixed"
);
//
▲ type: 'Tuple',
▲ '0': a,
▲ '1': b,
▲ length: 2
▲ });
// enumFromTo :: Int -> Int -> [Int]
Line 3,963 ⟶ 3,965:
}, (_, i) => m + i) : [];
m % n▼
);▼
// str :: a -> String
const str = x =>
Array.isArray(x) && x.every(
v => (
) ? (
x.join("")
) : null === x ? (
) : x.toString();
//
// wikiTable :: Dict -> [[a]]
const wikiTable =
),
body = rows.
cells = row.map(
▲ .join('') + '\n|}';
x => `${x}` || " "
).join(" || ");
return `${i ? "|" : "!"} ${cells}`;
▲ // ----------------------- MAIN ------------------------
}).join("\n|-\n");
return `{| ${style}\n${body}\n|}`;
// MAIN ---
return main();
})();</lang>
{{Out}}
{| class="wikitable" style="text-align:center;width:33em;height:33em;table-layout:fixed
▲! x !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! 10 !! 11 !! 12
|-
| 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
|}
|