5. Permutations Index   <<   >>

 
 p←perm n;i;ind;t         ⍝ version in 1981
⍝ all permutations of ⍳n
 p←(×n,n)⍴⎕io
 →(1≥n)⍴0
 t←perm n-1
 p←(0,n)⍴ind←⍳n
 i←n-~⎕io
l10:p←(i,((i≠ind)/ind)[t]),[⎕io]p
 →(⎕io≤i←i-1)⍴l10

                          ⍝ version in 2016

perm←{0=⍵:1 0⍴0 ⋄ ,[⍳2] (⊂0,1+∇ ¯1+⍵) ⌷⍤1 ⍒⍤1 ∘.=⍨ ⍳⍵}

 ∘.=⍨ ⍳4        ⍒⍤1 ∘.=⍨ ⍳4         q ⌷⍤1 ⍒⍤1 ∘.=⍨ ⍳4
1 0 0 0        0 1 2 3
0 1 0 0        1 0 2 3
0 0 1 0        2 0 1 3
0 0 0 1        3 0 1 2