Erlang получает ошибку ** 1: синтаксическая ошибка до: '->' **

Я начал работу в Erlang и получаю: ** 1: синтаксическая ошибка перед: '->' ** всякий раз, когда я объявляю любую функцию, например, для вычисления суммы списка (это экспериментально, конечно, есть встроенная функция для поиска суммы списка).

sum([]) -> 0;
sum([H | T]) -> H + sum(T).

в оболочке erl (v 5.5.5).

Заранее спасибо

15
задан user113716 4 September 2010 в 19:56
поделиться

1 ответ

Вы не можете определять функции в оболочке, используя тот же синтаксис, что и в файле erl.

Однако вы можете определить веселье.

Синтаксис в оболочке должен быть:

Sum = fun([], _) -> 0; ([H | T], F) -> H + F(T, F) end,
Sum([1,2,3], Sum).

Обратите внимание, что рекурсивные анонимные функции (а это и есть) определены безобразным образом. В основном вы должны передать функцию в качестве аргумента самой себе.

38
ответ дан 1 December 2019 в 00:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: