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