Anonymous user
Permutations: Difference between revisions
→{{header|Erlang}}: Get rid of ++ append operation in zipper
(→{{header|Erlang}}: Add zipper implementation) |
(→{{header|Erlang}}: Get rid of ++ append operation in zipper) |
||
Line 906:
permute([]) -> [[]];
permute(L) ->
% Use zipper to pick up first element of permutation
% place current member in front of all permutations
% of rest of set - both sides of zipper
prepend(H, permute(lists:reverse(R, T))
prepend(_, [], T, R) ->
prepend(X, [H|T], ZT, ZR) -> [[X|H] | prepend(X, T, ZT, ZR)].
</lang>
|