This course is for experienced Swift developers who want to explore Functional Programming.
Contact us at inquiries@dimsumthinking.com to book or inquire about this course for your group, company, conference, or public event.
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
Non-mutating methods
Generic Model
Lines
Making Functions
Closures
Higher-Order Functions
Call as Function
Higher-Order Functions in Arrays
Filter
Sorted
Map
CompactMap
FlatMap
Reduce
Zip
Map (Functors)
Arrays
One at a Time
Zero or One
Optionals
Result
Writer
Reader
State
FlatMap (Monads)
Arrays
Writer
Result
Optionals
Just
Reader
State
You will find much of this content and more in the book A Functional Programming Kickstart available from Editors Cut.