MPL Bytecode Compiler Code
Micro Programming Language - A Portable Language for Micro Computers
Status: Beta
Brought to you by:
buzzphp
/*
PERMUTATIONS - MPL VERSION
BASED ON THE IS-BASIC VERSION
HTTPS://ROSETTACODE.ORG/WIKI/PERMUTATIONS#IS-BASIC
*/
##LIBHDR
ISWAP(D,S;I) [ I=!D; !D=!S; !S=I ]
PERM(I,N,V;X,C) [
I ? [
PERM(I-1,N,V);
X=0; X<I @ [
ISWAP(V!X$,V!I$);
PERM(I-1,N,V);
ISWAP(V!X$,V!I$);
++X
]
] : [
X=0; X<N @ WRITEF("%S ", V!X++); NEWLINE()
]
]
PERMUTATIONS(N,T!10) PERM(N-1,N,T$)
.() [ PERMUTATIONS(3,"AARDVARKS","EAT","ANTS"); 0]