This course is for experienced Swift developers who want to explore Functional Programming. To book this course for your group, company, or public event see Booking and Availability.
This course will encourage you to look at functions and types differently. You can opt for the one day or two day course.
Day one focuses on higher-order functions and some of the principles of functional programming. We will create functions that return and accept other functions and then explore examples of higher-order functions in the Swift Standard Library's Arrays including filter(), sorted(), reduce(), map(), compactMap(), flatMap(), and zip().
The second day focuses on map() and flatMap() as design patterns. You'll see examples of functors and monads beginning with Arrays, Optionals, and Result, and moving on to Writer, Reader, and State.
We assume that you are an experienced programmer who has spent some time looking at Swift but you are relatively new to Functional Programming.
You need a Mac running the latest public version of Xcode. You'll create Swift playgrounds.
Immutability and Functions
Issues with mutability
Call as Function
Higher-Order Functions in Arrays
One at a Time
Zero or One
You will find much of this content and more in the book A Functional Programming Kickstart available from Editors Cut.