Permutations by swapping: Difference between revisions

m
→‎{{header|Sidef}}: minor code improvements
m (added whitespace before TOC.)
m (→‎{{header|Sidef}}: minor code improvements)
Line 1,711:
=={{header|Sidef}}==
{{trans|Perl}}
<lang ruby>func perms(xxn) {
var perms = [[+1]];
range(1, xx)n.eachtimes { |x|
var sign = -1;
perms.flat_map! {= |arr|gather {
for var (s, *p) =in perms arr...;{
var r = range(0, .. p.len);
take((s < 0 ? r : r.reverseflip).map {|i|
[sign *= -1, p.@[0..i-1], x, p.@[i..p.end]]
}...)
}
}
}
Line 1,727 ⟶ 1,728:
 
var n = 4;
for p in perms(n).each { |p|
var s = p.shift;
s > 0 && (s = '+1');
say "#{p.dump} => #{s}";
}</lang>
 
2,747

edits