Добрый день,
Erlang v.5.5.5 под линуксом.
Путаюсь скомпилировать следующий файл:
-module(test).
-export([Cnk/2]).
Cnk(n, k) when k>0 -> n*Cnk(n-1,k-1)/k;
Cnk(n, 0) -> n.
Выдается ошибка
./test.erl:2: bad function arity
./test.erl:4: syntax error before: Cnk
если через erl пытаюсь выполнить фукнцию Cnk, то эрланг ругается на when?
Что я не так делаю?
Спасибо.
Здравствуйте, Бабошин Андрей, Вы писали:
БА>Что я не так делаю?
Ну с большой буквы не могут начинаться имена функций просто
Здравствуйте, Курилка, Вы писали:
К>Здравствуйте, Бабошин Андрей, Вы писали:
БА>>Что я не так делаю?
К>Ну с большой буквы не могут начинаться имена функций просто
Точно! Спасибо)
Здравствуйте, Бабошин Андрей, Вы писали:
БА>Что я не так делаю?
Если отвечать коротко, то — все
Имена функций должны быть атомами, а имена переменных должны начинаться с большой буквы. Если очень хочется чтобы имя функции начиналось с большой буквы, то необходимо заключать его в одинарные кавычки, примерно так:
-module(test).
-export(['Cnk'/2]).
'Cnk'(N, K) when K > 0 -> N * 'Cnk'(N - 1, K - 1) / K;
'Cnk'(N, 0) -> N.
БА>Спасибо.
Не за что