Да, я зашел с козырей. ФП-шники очень чтят свою элитарность и боятся, что кто то их раскроет. Если я вдруг оборву этот тред – знайте: я вовсе не забил, а меня нейтрализовала Haskell мафия за правду
Главными объектами в ФП являются чистые функции, их композиция и иммутабельные коллекции
Функциональный стиль подразумевает разделение кода на три категории
- Данные
- Вычисления
- Действия
Мне очень нравится такое описание, и я советую почитать
подробнее в отличной книге от @ericnormand manning.com/books/grokking…
ФП мир действительно имеет свои корни в академической сфере и довольно большой процент
пользователей занимаются CS.
Но если говорить о промышленной разработке, то математики
тут не больше чем в паттерне фабрика
Если вы спросите разработчика на Elm или Clojure, что такое Профунктор, то скорее всего получите ответ "это канал с мемами в телеграмме"
Да, я говорил, что фп это просто. Но его нельзя импортировать как библиотеку. Это всё таки парадигма и кроме вас её некому соблюдать.
Легче всего она познаётся в настоящих фп языках
Просто ФП языки лучше знают что нужно для этой парадигмы и изначально были заточены под это. Учиться лучше всего в дружественной среде, а в бою применять уже можно на чём угодно
- мощный паттерн матчинг
- иммутабельность по умолчанию
Для статических:
- вывод типов по Хиндли-Милнеру
- параметрический полиморфизм
Для динамических:
- мощные API для работы с базовыми коллекциями
Но искателей трудностей ждёт лишь сложность, возникающая из-за выбора среди множества соревнующихся подходов или недостатка документации, туториалов и каких то гайдлайнов
Несите ему свой фидбек, особенно если вы новичок
Хотя бы для того чтобы не учить Scala, как lingua franca №2 в ФП сообществе.
Ещё есть замечательная книжечка "О Haskell" ohaskell.guide от @dshevchenko_biz. Её бы даже рекомендовал больше, так как она полностью на русском языке
Действительно, ведь лучшая программа та , которая ничего не делает
github.com/kelseyhightowe…
stackoverflow.com/questions/6622…
Есть целое соревнование, кто лучше, гибче и без оверхеда контроль над эффектами сделает. И тут огромный простор для сложности