2016 Update

This commit is contained in:
Tina Müller 2016-12-05 22:15:40 +01:00
parent 948b86eafa
commit dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions

View file

@ -1,3 +1,18 @@
let flatten = list => list.reduce(
(a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []
);
(function () {
'use strict';
// flatten :: Tree a -> [a]
function flatten(t) {
return (t instanceof Array ? concatMap(flatten, t) : t);
}
// concatMap :: (a -> [b]) -> [a] -> [b]
function concatMap(f, xs) {
return [].concat.apply([], xs.map(f));
}
return flatten(
[[1], 2, [[3, 4], 5], [[[]]], [[[6]]], 7, 8, []]
);
})();

View file

@ -0,0 +1,4 @@
// flatten :: Tree a -> [a]
function flatten(a) {
return a instanceof Array ? [].concat.apply([], a.map(flatten)) : a;
}

View file

@ -0,0 +1,13 @@
(function () {
'use strict';
// flatten :: Tree a -> [a]
function flatten(a) {
return a instanceof Array ? [].concat.apply([], a.map(flatten)) : a;
}
return flatten(
[[1], 2, [[3, 4], 5], [[[]]], [[[6]]], 7, 8, []]
);
})();

View file

@ -0,0 +1,3 @@
let flatten = list => list.reduce(
(a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []
);

View file

@ -0,0 +1,12 @@
function flatten(list) {
for (let i = 0; i < list.length; i++) {
while (true) {
if (Array.isArray(list[i])) {
list.splice(i, 1, ...list[i]);
} else {
break;
}
}
}
return list;
}