Как переписать алгоритм комбинаций Эрланга в Elixir?

Я возился с Эликсиром последние несколько недель. Я только что натолкнулся на это краткоеАлгоритм комбинаций в Эрланге, который я пытался переписать в эликсире, но застрял.

Erlang версия:

comb(0,_) ->
  [[]];
comb(_,[]) ->
  [];
comb(N,[H|T]) ->
  [[H|L] || L <- comb(N-1,T)]++comb(N,T).

Эликсир версия, я придумал это, но это не правильно:

def combination(0, _), do: [[]]
def combination(_, []), do: []
def combination(n, [x|xs]) do
  for y <- combination(n - 1, xs), do: [x|y] ++ combination(n, xs)
end

Пример использования, с неверными результатами:

iex> combination(2, [1,2,3])
[[1, 2, [3], [2, 3]]]

Есть указания на то, что я делаю не так?

Спасибо!
Шон

Ответы на вопрос(1)

Ваш ответ на вопрос