Book Image

Swift 3 Functional Programming

By : Dr. Fatih Nayebi
Book Image

Swift 3 Functional Programming

By: Dr. Fatih Nayebi

Overview of this book

<p>This book is based on Swift 3 Developer preview version and aims at simplifying the functional programming (FP) paradigms making it easily usable, by showing you how to solve many of your day-to-day development problems.</p> <p>Whether you are new to functional programming and Swift or experienced, this book will strengthen the skills you need to design and develop high-quality, scalable, and efficient applications.</p> <p>The book starts with functional programming concepts, the basics of Swift 3, and essential concepts such as functions, closures, optionals, enumerations, immutability, and generics in detail with coding examples.</p> <p>Furthermore, this book introduces more advanced topics such as function composition, monads, functors, applicative functors, memoization, lenses, algebraic data types, functional data structures, functional reactive programming (FRP), protocol-oriented programming (POP) and mixing object-oriented programming (OOP) with functional programming (FP) paradigms.</p> <p>Finally, this book provides a working code example of a front-end application developed with these techniques and its corresponding back-end application developed with Swift.</p>
Table of Contents (17 chapters)
Swift 3 Functional Programming
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

Chapter 6. Map, Filter, and Reduce

In previous chapters, we briefly touched on the map function as an example of built-in higher-order functions. In this chapter, we will explore this topic further and get familiar with map, flatMap, filter, and reduce functions in Swift with examples. We will also get familiar with the category theory concepts such as Monad, Functor, and Applicative Functor.

This chapter will cover the following topics with coding examples:

  • Functor

  • Applicative Functor

  • Monad

  • Map

  • FlatMap and flatten

  • Filter

  • Reduce

  • Apply

  • Join

  • Chaining higher-order functions

  • Zip

  • Practical examples

Collections are used everywhere in our day-to-day development, and to be able to use collections declaratively, we need means such as map, filter, and reduce. Before going through these functions that are built-in into Swift, let's explore the theoretical background of these concepts.