Как начать писать в функциональном стиле?
Самый хардкорный вариант - попрактикуйтесь на языке, на котором не получится писать никак по другому, кроме как в функциональном стиле. Хаскелл, Лисп, Clojure (тот же Лисп), Scheme и тд.
Более плавный - смотрите на свой код и пытайтесь по чуть-чуть переделывать его в функциональном стиле, насколько позволяет язык.
Вместо циклов - функции map/reduce/fold/etc ..
Лично у меня получилось писать функционально, когда я хорошо освоился с такими понятиями как lazy функции, когда хорошо понял как работает maybe, что из любой функции можно сделать чистую. ну когда есть конкретные штуки, когда видишь почему Task может быть более интересен чем Promise, когда можешь легко написать простейший Task и map к нему. На ютубе есть видео где Фрисби на Реакте пишет.
Короче в какойто момент случиться переворот, когда просто станешь это понемногу использовать. ну все с карри и компоса начнется.
Предупреждаю, пути назад уже не будет!!!! 
вот это посмотри
https://ocw.mit.edu/courses/electrical-engineering...
еще есть книжка к курсу на русском, найдешь в сети без проблем.