Permutations with repetitions: Difference between revisions

Added Elixir
(rearranges in order of the language.)
(Added Elixir)
Line 194:
}</lang>
The output is the same.
 
=={{header|Elixir}}==
{{trans|Erlang}}
<lang elixir>defmodule RC do
def perm_rep(list), do: perm_rep(list, length(list))
def perm_rep([], _), do: [[]]
def perm_rep(_, 0), do: [[]]
def perm_rep(list, i) do
for x <- list, y <- perm_rep(list, i-1), do: [x|y]
end
end
 
list = [1, 2, 3]
Enum.each(1..3, fn n ->
IO.inspect RC.perm_rep(list,n)
end)</lang>
 
{{out}}
<pre>
[[1], [2], [3]]
[[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]]
[[1, 1, 1], [1, 1, 2], [1, 1, 3], [1, 2, 1], [1, 2, 2], [1, 2, 3], [1, 3, 1],
[1, 3, 2], [1, 3, 3], [2, 1, 1], [2, 1, 2], [2, 1, 3], [2, 2, 1], [2, 2, 2],
[2, 2, 3], [2, 3, 1], [2, 3, 2], [2, 3, 3], [3, 1, 1], [3, 1, 2], [3, 1, 3],
[3, 2, 1], [3, 2, 2], [3, 2, 3], [3, 3, 1], [3, 3, 2], [3, 3, 3]]
</pre>
 
=={{header|Erlang}}==
Anonymous user