[erlang] Не могу понять почему ошибка
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 20.05.08 11:52
Оценка:
Добрый день,

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?

Что я не так делаю?

Спасибо.
Re: [erlang] Не могу понять почему ошибка
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.05.08 11:56
Оценка: 2 (1)
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Что я не так делаю?


Ну с большой буквы не могут начинаться имена функций просто
Re[2]: [erlang] Не могу понять почему ошибка
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 20.05.08 12:01
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Здравствуйте, Бабошин Андрей, Вы писали:


БА>>Что я не так делаю?


К>Ну с большой буквы не могут начинаться имена функций просто


Точно! Спасибо)
Re: [erlang] Не могу понять почему ошибка
От: Biopower  
Дата: 23.05.08 07:26
Оценка: 3 (1) +2
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Что я не так делаю?


Если отвечать коротко, то — все Имена функций должны быть атомами, а имена переменных должны начинаться с большой буквы. Если очень хочется чтобы имя функции начиналось с большой буквы, то необходимо заключать его в одинарные кавычки, примерно так:


-module(test).                                                                  
-export(['Cnk'/2]).                                                               
                                                                                
'Cnk'(N, K) when K > 0 -> N * 'Cnk'(N - 1, K - 1) / K; 
'Cnk'(N, 0) -> N.



БА>Спасибо.


Не за что
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.