RosettaCodeData/Task/Permutations/Icon/permutations.icon

9 lines
194 B
Plaintext

procedure main(A)
every p := permute(A) do every writes((!p||" ")|"\n")
end
procedure permute(A)
if *A <= 1 then return A
suspend [(A[1]<->A[i := 1 to *A])] ||| permute(A[2:0])
end