Permutations: Difference between revisions
Content added Content deleted
(→{{header|Perl 6}}: modernize a bit) |
|||
Line 2,107: | Line 2,107: | ||
// [a] -> [[a]] |
// [a] -> [[a]] |
||
function permutations(xs) { |
function permutations(xs) { |
||
return xs.length ? ( |
return xs.length ? (chain(xs, function (x) { |
||
return chain(permutations(deleted(x, xs)), function (ys) { |
|||
return |
return ([[x].concat(ys)]); |
||
⚫ | |||
})) : [[]] |
|||
})})) : [[]] |
|||
} |
} |
||
Line 2,123: | Line 2,121: | ||
// drops first instance found |
// drops first instance found |
||
function deleted(x, xs) { |
function deleted(x, xs) { |
||
return xs.length ? ( |
return xs.length ? x === xs[0] ? xs.slice(1) : [xs[0]] |
||
x |
.concat(deleted(x, xs.slice(1))) : []; |
||
deleted(x, xs.slice(1)) |
|||
⚫ | |||
) : []; |
|||
} |
} |
||
Line 2,136: | Line 2,131: | ||
{{out}} |
{{out}} |
||
<lang JavaScript>[["Aardvarks", "eat", "ants"], ["Aardvarks", "ants", "eat"], |
<lang JavaScript>[["Aardvarks", "eat", "ants"], ["Aardvarks", "ants", "eat"], |
||
["eat", "Aardvarks", "ants"], ["eat", "ants", "Aardvarks"], |
|||
["ants", "Aardvarks", "eat"], ["ants", "eat", "Aardvarks"]]</lang> |
|||
=={{header|jq}}== |
=={{header|jq}}== |