Permutations: Difference between revisions

m
m (→‎{{header|Tailspin}}: syntax update)
Line 7,098:
<lang tailspin>
templates permutations
<=1> [1] !
<>
def n: $;
templates expand
def p: $;
1..$n -> \(def k: $;
[$p(1..$k-1)..., $n, $p($k..-1)...] !\) !
end expand
$n - 1 -> permutations -> expand !
end permutations
 
def alpha: ['ABCD'...];
[ $alpha::length -> permutations -> '$alpha($)...;' ] -> !OUT::write
Line 7,120:
<lang tailspin>
templates lexicalPermutations
<=1> [1] !
<>
def n: $;
def p: [ $n - 1 -> lexicalPermutations ];
1..$n -> \(def k: $;
def tail: [1..$n -> \(<~=$k> $ !\)];
$p... -> [ $k, $tail($)...] !\) !
end lexicalPermutations
 
Line 7,145:
def index: $;
$index..$@perms::length
-> \(
@perms([$, $index]): $@perms([$index, $])...;
$index + 1 -> findPerms !
\) !
@perms([$@perms::length-1, $index..~$@perms::length-2]): $@perms($index..-1)...;
end findPerms
@: [1..$];
1 -> findPerms !
end perms
 
def alpha: ['ABCD'...];
[4 -> perms -> '$alpha($)...;' ] -> !OUT::write
Anonymous user