Как начать писать в функциональном стиле?

Читаю https://github.com/MostlyAdequate ФП-код выглядит читабельным, более коротким. Но, кажется, что для такого подхода нужно выкинуть весь опыт и мозг из головы потому, что когда садишься решать рабочие задачи всё равно склоняешься к привычной императивщине, а попытки сделать в функциональном стиле требуют дополнительных усилий и времени. Это я тупой или есть какой-то другой способ перейти на ФП?
  • Вопрос задан
  • 725 просмотров
Пригласить эксперта
Ответы на вопрос 4
@protven
Самый хардкорный вариант - попрактикуйтесь на языке, на котором не получится писать никак по другому, кроме как в функциональном стиле. Хаскелл, Лисп, Clojure (тот же Лисп), Scheme и тд.

Более плавный - смотрите на свой код и пытайтесь по чуть-чуть переделывать его в функциональном стиле, насколько позволяет язык.
Вместо циклов - функции map/reduce/fold/etc ..
Ответ написан
Комментировать
@BLVST
Frontend. Открыт к предложениям.
Всегда так, применение нового инструмента (или в данном случае подхода) требует усилий, пока не привыкнешь. Главное сначала себя чуть-чуть позаставлять
Ответ написан
Jeer
@Jeer
уверенный пользователь
Перечитывайте туториалы для разных языков )
https://habrahabr.ru/post/154105/
Ответ написан
Комментировать
@montecazazza
Node, GraphQL, React
Лично у меня получилось писать функционально, когда я хорошо освоился с такими понятиями как lazy функции, когда хорошо понял как работает maybe, что из любой функции можно сделать чистую. ну когда есть конкретные штуки, когда видишь почему Task может быть более интересен чем Promise, когда можешь легко написать простейший Task и map к нему. На ютубе есть видео где Фрисби на Реакте пишет.
Короче в какойто момент случиться переворот, когда просто станешь это понемногу использовать. ну все с карри и компоса начнется.
Предупреждаю, пути назад уже не будет!!!!
вот это посмотри
https://ocw.mit.edu/courses/electrical-engineering...
еще есть книжка к курсу на русском, найдешь в сети без проблем.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы