[go: up one dir, main page]

Menu

[r297]: / XPERMUTA.MPL  Maximize  Restore  History

Download this file

30 lines (22 with data), 495 Bytes

/*
  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]