Есть простое суммирование значений в списке:Почему я не могу использовать параметры по умолчанию в этом суммировании списка эликсиров?
defmodule ListMath do
def sum_list([head | tail], accumulator) do
sum_list(tail, head + accumulator)
end
def sum_list([], accumulator) do
accumulator
end
end
Но называя это требует прохождения в значении для аккумулятора, например:
IO.puts ListMath.sum_list([4,5,6],0)
15
Я хотел бы назвать это так:
неIO.puts ListMath.sum_list([4,5,6])
** (UndefinedFunctionError) function ListMath.sum_list/1 is undefined...
Если изменить его принять значение по умолчанию для аккумулятора пар, он больше не компилируется:
defmodule ListMath do
def sum_list([head | tail], accumulator // 0) do
sum_list(tail, head + accumulator)
end
def sum_list([], accumulator) do
accumulator
end
end
- Я использую Elixir 1.3.4.
- Я видел this question еще в Elixir 0.12, который кажется довольно связанным, но все еще не понимает.
// vs \\ - простая типографская ошибка, и поэтому этот вопрос должен быть закрыт. Голосовать, чтобы закрыть. –