Swift является статически типизованным (statically typed) языком, что означает, что мы не можем больше бессистемно забрасывать объекты в типизованные переменные и заставлять компилятор доверять нам, что этот объект именно этого типа. В Swift компилятор делает проверку типов и тем самым предохраняет нас от случайных runtime ошибок. Поэтому Apple декларирует Swift как язык безопасного программирования.
В Swift очень много интересных современных новшеств: Optionals, Generics, Type Inference, элементы функционального программирования, новые возможности структур, перечислений, классов, Playgrounds и т.д.
Для начала мы рассмотрим функциональное программирование на Swift, которое приводит ко множеству интересных способов повторного использования кода и делает код более тестируемым. Мы можем даже не догадываться обо всем этом, но погружаясь все глубже и глубже в функциональное программировние, мы начинаем ясно понимать, что это серьезный инструмент для того, чтобы избавиться от сложности вашего программного кода, Функциональное программирование должно быть в арсенале каждого программиста.
К сожалению, функциональное программировагие иногда кажется немного теоретизированным и недоступным в обычной практике программирования, но это Не так. Это такой же замечательный способ программирования, только немного отличающийся от того, к которому мы привыкли. Он делает упор на неизменяемости значений и одержим функциями и их композициями.