
Курс присвячено вивченню парадигми функціонального програмування як сучасного підходу до розробки програмного забезпечення, що базується на ідеї опису що робити, а не як робити. Теоретична частина охоплює базові концепції функціональної парадигми: чисті функції та відсутність побічних ефектів, рекурсію як основний механізм обчислень, використання функцій вищого порядку, лямбда-обчислення як математичну основу функціонального стилю, а також роботу з виразами, типами та структурами даних. Окремо розглядаються питання композиції функцій, ледачих обчислень і модульності програм.
Практична частина орієнтована на застосування функціональних ідей у різних мовах програмування. На прикладі Haskell розглядаються “чисті” функціональні засоби — типи, списки, рекурсія, робота з вбудованими функціями (map
, filter
, fold
). На прикладі Python аналізуються можливості інтеграції функціонального стилю у мову загального призначення: функції map
, filter
, reduce
, генератори, лямбда-функції, модуль functools
. У JavaScript детально розглядається робота з масивами через функціональні методи (map
, filter
, reduce
), замикання та роль функцій як об’єктів першого класу.
- Teacher: Кудін Олексій Володимирович
- Асистент із правами викладача: Зіновєєв Ігор Валерійович