Permutations by swapping: Difference between revisions
Added Perl 6 solution.
(Added BBC BASIC) |
(Added Perl 6 solution.) |
||
Line 354:
1 1 2 0
_1 1 0 2</lang>
=={{header|Perl 6}}==
=== Recursive ===
<lang perl6>sub insert($x, @xs) { [@xs[0..$_-1], $x, @xs[$_..*]] for 0..+@xs }
sub order($sg, @xs) { $sg > 0 ?? @xs !! @xs.reverse }
multi perms([]) {
[] => +1
}
multi perms([$x, *@xs]) {
perms(@xs).map({ order($_.value, insert($x, $_.key)) }) Z=> (+1,-1) xx *
}
.say for perms([0..2]);</lang>
{{out}}
<pre>
[0, 1, 2] => 1
[1, 0, 2] => -1
[1, 2, 0] => 1
[2, 1, 0] => -1
[2, 0, 1] => 1
[0, 2, 1] => -1
</pre>
=={{header|Python}}==
|