Swift — это язык программирования, созданный Apple Inc. Он был представлен в 2014 году. Swift предназначен для работы с платформами Apple какао и какао сенсорного существующего кода Objective C, написанного для них.

Функциональное программирование — это парадигма программирования, в которой мы используем функции в качестве строительных блоков для реализации алгоритмов. Функциональное программирование — важная парадигма компьютерных наук, она существует уже несколько десятилетий, но стала популярной лишь недавно.

Я расскажу о функциональном программировании Swift, а в функциональном программировании мы используем значения и выражения, а не переменные. И главная причина этого в том, что мы используем функциональное программирование для определения функций, а не для создания переменных и присвоения им определенного значения.

В функциональном программировании мы выполняем вычисления для выполнения математических функций, игнорируя состояния и изменяемые данные. Программирование выполняется с помощью выражений. Итак, в функциональном программировании мы следуем неизменности и программированию без сохранения состояния.

Чистые функции составляют наиболее важную часть функционального программирования FP.

Чистые функции имеют дело только с данными внутри себя, поэтому они не изменяют данные вне себя. По этой причине у них нет побочных эффектов, и они всегда будут давать один и тот же результат при тестировании, и это называется ссылочной прозрачностью и является особенностью чистых функций.

Когда дело доходит до многопоточности, вы можете реализовать чистые функции в разных потоках, и это дает большое преимущество FP над ООП.

Императивный пример

Императивным способом мы создали массив целых чисел, проходим по всем элементам и умножаем их сами на себя.

Деклеративный пример

Декларативным способом мы используем функцию карты и умножаем каждый элемент на себя.

В функциональном программировании функции являются функциями первого класса, что означает, что функции обрабатываются как любые другие значения. Их можно передавать как аргументы или возвращать из функции.

Более подробно о FP мы расскажем в следующих постах.