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}}==
57

edits