Я хотела бы представить концепцию
Функционального Программирования новичкам самым простейшим образом, выделив некоторые его преимущества из множества остальных, которые реально позволят сделать код более читаемым и выразительным. Я подобрала для вас интересные демонстрационные примеры, которые находятся на
Playground в
Github.
Функциональное Программирование: Определение
Прежде всего,
Функциональное Программирование — это не язык или синтаксис, а скорее всего — способ решения проблем путем разбиения сложных процессов на более простые и последующей их композиции. Как следует из названия "
Функциональное программирование", единицей композиции для данного подхода является
функция; и цель такой
функции — избежать изменения состояния или значений за пределами своей области действия (
scope).
В Мире
Swift для этого есть все условия, ибо
функции здесь являются такими же полноправными участниками процесса программирования, как и
объекты, а проблема изменяемости (
mutation) решается на уровне концепции
value ТИПОВ (структур
struct и перечислений
enum), которые помогают управлять изменяемостью (
mutation) и четко сообщают о том, как и когда это может произойти.
Однако
Swift не является в полном смысле языком
Функционального программирования, он не принуждает вас к
Функциональному программированию, хотя и признает преимущества
Функциональных подходов и находит способы встраивания их.
В этой статье мы сфокусируемся на использовании встроенных в
Swift (то есть «из коробки») элементов
Функционального программирования и понимании того, как можно их комфортно использовать в вашем приложении.