Я пытаюсь сказать, что Э — функциональный, не purely, но да.
Я не понимаю в чем функциональность эрланга, если в нем:
1. Энергичные вычисления 2. Функции явно не first class 3. Нет никаких внедренных практик фп, которых бы не было в каком-нибудь питоне/руби 4. Вовсю глобальные переменные 5. Никакого способа заранее отличить грязный код от чистого
Я писал какой-то аналог микса, так вот сперва делал все функционально по уму - большая структура данных типа Req в ковбое, все в нее пихается, все из нее достается - передаешь ее из функции в функцию как мидлварь. А потом посмотрел, как сделан микс - создается на старте агент и все в него тупо пихается, ибо его имя знают все. И конец.
а что тебя смущает? Мало того, что в эрланге крайне разнородный механизм работы с функциями ( {M,F,A}, fun Module:f/2, fun() -> .. ), так оно ещё и довольно бедное: ни каррирования, ни чего там ещё придумают.
При этом с реальным использованием совместим только {M,F,A}, который по сути от какой-нибудь Java DI не отличается
Я писал какой-то аналог микса, так вот сперва делал все функционально по уму - большая структура данных типа Req в ковбое, все в нее пихается, все из нее достается - передаешь ее из функции в функцию как мидлварь. А потом посмотрел, как сделан микс - создается на старте агент и все в него тупо пихается, ибо его имя знают все. И конец.
потом через 2 года или переделывают по уму, или становится ясно, что и так сойдет, так даже удобнее