Я начал работу в Erlang и получаю: ** 1: синтаксическая ошибка перед: '->' **
всякий раз, когда я объявляю любую функцию, например, для вычисления суммы списка (это экспериментально, конечно, есть встроенная функция для поиска суммы списка).
sum([]) -> 0;
sum([H | T]) -> H + sum(T).
в оболочке erl (v 5.5.5).
Заранее спасибо
Вы не можете определять функции в оболочке, используя тот же синтаксис, что и в файле erl.
Однако вы можете определить веселье.
Синтаксис в оболочке должен быть:
Sum = fun([], _) -> 0; ([H | T], F) -> H + F(T, F) end,
Sum([1,2,3], Sum).
Обратите внимание, что рекурсивные анонимные функции (а это и есть) определены безобразным образом. В основном вы должны передать функцию в качестве аргумента самой себе.