| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Функциональные языки: общие вопросы > [erlang] Чаво |
| Автор: v2v 9.3.2011, 00:22 | ||||
| Открываю для себя мир функционального программирования. Решил написать парочку тестовых програмок на языке erlang что бы понять возможности/преимущества/недостатки. Естественно сразу появились вопросы. В связи с необразованностью в этой области некоторые вопросы будут звучать глупо, не ругайте сильно. Собственно программа на которой я застрял - вычисление суммы всех простых чисел меньше Н. Правильный рабочий код получилось написать довольно быстро, но вот получить желаемого результата не удаётся. Дело в том что квадратичная сложность кода делает его непригодным для чисел больше нескольких сот тысяч. 1. Не хватает аккумулятора (переменной в памяти), куда можно было бы скидывать уже найденные простые числа, и пользоваться при следующих итерациях. Как жить без переменных?
2. При попытке в условном операторе if вызвать функцию, компилятор ругается. Так нельзя делать? Почему?
3. В командной строке ерланга как можно декларировать функции? Обязательно ли создавать их в отдельном файле? -- на пока хватит. |
| Автор: k0rvin 9.3.2011, 07:56 | ||||
1. передавайте аккумулятор параметром:
собсвенно единственная ошибка в Вашем коде -- отсутствие проверки X == 0 в sum_prime_below, отчего она уходит в бесконечную рекурсию. можно и так написать:
но вообще, если у Вас цель изучить именно ФП, то лучше взять Хаскелл |