Training

Functional Programming in Swift


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.

What you'll learn


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.

What you need


You need a Mac running the latest public version of Xcode. You'll create Swift playgrounds.

Syllabus Highlights -- the one day class will include topics taken from the following


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

Related Content


You will find much of this content and more in the book A Functional Programming Kickstart available from Editors Cut.