ПП базується на обчисленні ламбби. Вам потрібно це знати. Це хороша відправна точка. Функції - це все. Немає поняття держави (хоча ви можете підробити це на більш високому рівні).
В ООП
a = 1 a = a + 1
приймається. У ФП не так. Ви просто не можете призначити змінній інше значення. Якщо ви хочете навчитися FP довгостроково, вивчіть Haskell. Це найчистіша версія FP там і її досить складна (я тільки почав її вивчати), але все-таки варто її вивчити.
Вступ до функціонального програмування дає вам високий рівень огляду того, що таке FP.
Два застереження, хоча
- Якщо ви хочете навчитися FP для роботи, то вакансій там не надто багато. Процедурні та ООП досі регулюють ринок праці. Але FP може вам дуже допомогти у вивченні нових способів вирішення проблеми.
- Компілятори FP не дуже швидко. Оскільки FP більше стосується вирішення проблеми, ви не можете очікувати швидкості C. Але все ж ви можете дати інструкції компілятору (в Haskell), щоб прискорити процес виконання. Компроміс полягає в тому, що ви отримуєте багато часу, зосереджуючись на програмі в руці, а не на помилках протипожежних.