Permutations: Difference between revisions
→{{header|Factor}}: Add Erlang
(Added Scala) |
(→{{header|Factor}}: Add Erlang) |
||
Line 607:
</pre>
=={{header|Erlang}}==
<lang Erlang>module(permute).
-export([permute/1]).
-import(lists, [append/1, append/2, delete/2, map/2]).
permute([]) ->
[[]];
permute(L) ->
append(map(fun(X) ->
map(fun(P) -> append([X],P) end, permute(delete(X, L)))
end, L)).</lang>
Demonstration (escript):
<lang Erlang>main(_) -> io:fwrite("~p~n", [permute:permute([1,2,3])]).</lang>
Output:
<pre>[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]</pre>
=={{header|Factor}}==
The all-permutations word is part of factor's standard library. See http://docs.factorcode.org/content/word-all-permutations,math.combinatorics.html
|