RosettaCodeData/Task/List-comprehensions/JavaScript/list-comprehensions-3.js

19 lines
438 B
JavaScript

(n => {
let flatMap = (xs, f) => [].concat.apply([], xs.map(f)),
range = (m, n) => Array.from({
length: (n - m) + 1
}, (_, i) => m + i);
return flatMap(range(1, n), (x) =>
flatMap(range(1 + x, n), (y) =>
flatMap(range(1 + y, n), (z) =>
x * x + y * y === z * z ? [
[x, y, z]
] : []
)));
})(20);