23 lines
559 B
Text
23 lines
559 B
Text
perms templates
|
|
findPerms source
|
|
@ set [1..$@perms::length];
|
|
1 -> # !
|
|
when <|..0> do VOID
|
|
when <|$@perms::length..> do
|
|
$@perms !
|
|
$ - 1 -> # !
|
|
when <|?($@($) matches <|$@perms::length~..>)> do
|
|
@perms([$@perms::last, $..~$@perms::last]) set $@perms($..)...;
|
|
@($) set $;
|
|
$ - 1 -> #!
|
|
otherwise
|
|
@perms([$@($), $]) set $@perms([$, $@($)])...;
|
|
@($) set $@($) + 1;
|
|
$ + 1 -> # !
|
|
end findPerms
|
|
@ set [1..$];
|
|
$findPerms !
|
|
end perms
|
|
|
|
alpha is ['ABCD'...];
|
|
[4 -> perms -> '$alpha($)...;' ] !
|