Another update from ingydotnet^djgoku
This commit is contained in:
parent
91df62d461
commit
948b86eafa
7604 changed files with 108452 additions and 22726 deletions
30
Task/Permutations/JavaScript/permutations-2.js
Normal file
30
Task/Permutations/JavaScript/permutations-2.js
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
(function () {
|
||||
|
||||
// [a] -> [[a]]
|
||||
function permutations(xs) {
|
||||
return xs.length ? (
|
||||
chain( xs, function (x) {
|
||||
return chain( permutations(deleted(x, xs)), function (ys) {
|
||||
|
||||
return ( [[x].concat(ys)] );
|
||||
|
||||
})})) : [[]]
|
||||
}
|
||||
|
||||
// monadic bind/chain for lists
|
||||
function chain(xs, f) {
|
||||
return [].concat.apply([], xs.map(f));
|
||||
}
|
||||
|
||||
// drops first instance found
|
||||
function deleted(x, xs) {
|
||||
return xs.length ? (
|
||||
x === xs[0] ? xs.slice(1) : [xs[0]].concat(
|
||||
deleted(x, xs.slice(1))
|
||||
)
|
||||
) : [];
|
||||
}
|
||||
|
||||
return permutations(['Aardvarks', 'eat', 'ants'])
|
||||
|
||||
})();
|
||||
1
Task/Permutations/JavaScript/permutations-3.js
Normal file
1
Task/Permutations/JavaScript/permutations-3.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
[["Aardvarks", "eat", "ants"], ["Aardvarks", "ants", "eat"], ["eat", "Aardvarks", "ants"], ["eat", "ants", "Aardvarks"], ["ants", "Aardvarks", "eat"], ["ants", "eat", "Aardvarks"]]
|
||||
Loading…
Add table
Add a link
Reference in a new issue