At the end of this course, your approach to the code you write will change. You'll look at functions differently. They will be building blocks in the apps you write the same way objects have been up til now. Your code will be more modular and testable. The goal is not to replace the OO code you know and love so much as it is to add new and powerful tools to your toolbelt and to show you when to use them.
We begin by looking more closely at functions you use already. Next we explore higher order functions that either accept or return closures. We play with four canonical examples from the Swift Standard Library: map(), filter(), reduce(), and flatMap() and then create map() functions of our own. We expand to create and work with our own flatMap() and apply() functions.
We assume that you are an experienced programmer who has spent some time looking at Swift but you are new to Functional Programming. This course shows you how to add elements of a functional style to Object-Oriented and Protocol-Oriented Programming.