Permutations: Difference between revisions
→Functional (ES5): (slightly closer translation of Haskell Prelude functions)
m (→{{header|VBA}}) |
(→Functional (ES5): (slightly closer translation of Haskell Prelude functions)) |
||
Line 2,105:
<lang JavaScript>(function () {
// [a] -> [[a]]
function permutations(xs) {
return xs.length ? (
return concatMap(
function (ys) {
})▼
return ([[x].concat(ys)]);
})) : [[]]▼
}, permutations(delete1(x, xs)))
}▼
▲ }, xs)) : [[]]
// concatMap :: (a -> [b]) -> [a] -> [b]
function
return [].concat.apply([], xs.map(f));
}
// delete1 :: a -> [a] -> [a]
function delete1(x, xs) {
return deleteBy(function (a, b) {
return a === b;
}, x, xs);
▲ }
// deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]
▲ // drops first instance found
function
return xs.length ? fnEq(x
.concat(
}
return permutations(['Aardvarks', 'eat', 'ants'])
})();</lang>
Line 2,132 ⟶ 2,143:
<lang JavaScript>[["Aardvarks", "eat", "ants"], ["Aardvarks", "ants", "eat"],
["eat", "Aardvarks", "ants"], ["eat", "ants", "Aardvarks"],
=={{header|jq}}==
|