Updated for Swift 5
Functional Swift
Learn core concepts of functional programming with Swift and leverage them in real world code.
by Chris Eidhof, Florian Kugler, and Wouter Swierstra
Swift opens up a whole new world of programming that we’re going to explore in this book. To quote Swift’s creator, Chris Lattner:
“Objective-C without the C” implies something subtractive, but Swift dramatically expands the design space through the introduction of generics and functional programming concepts.
We’ll explain the concepts behind functional programming and how Swift makes it easy to leverage them in a pragmatic way, in order to write clearer and more expressive code.
Book Contents
-
Thinking Functionally
Get to know the functional programming paradigm
-
Map, Filter, Reduce
Higher-order functions and functional manipulation of collections
-
Functional APIs
Designing functional, composable, and type-safe APIs
-
Optionals
How Swift solves the “missing value” problem, and why that's a good idea
-
Purity
Benefits of value types and immutability
-
Enums
Create your own data types with Swift's enums for clarity and type safety
-
Purely Functional Data Structures
Use recursive enums to write simple data structures
-
Generators and Sequences
Understand the machinery underlying Swift's collection types
-
Parsing & Evaluating
A functional parsing library and a simple spreadsheet app as example
-
Applicative Functors and Monads
Common patterns underlying functional code
Buy Book
Bundles
Save on each additional book
About the Authors
-
Chris Eidhof
Chris is one of the objc.io co-founders, and host of Swift Talk. He also co-authored the Functional Swift, Advanced Swift, and Thinking in SwiftUI books. Before, he wrote apps such as Deckset.
-
Florian Kugler
Florian is one of the objc.io co-founders. He worked on Mac Apps like Deckset, co-authored the Thinking in SwiftUI book amongst others, and hosts the weekly Swift Talk video series. Recently, he also started running Anton Reisemobile part time, a workshop for fine campervan conversions.
-
Wouter Swierstra
Wouter has more than 15 years of experience with functional programming. He has worked in industry, taught courses, and published research articles — all using functional programming.
FAQ
-
Will you update the book?
Yes. For more information on our policy, see book updates.
-
Do I need to know Swift before reading this book?
We assume you have a working knowledge of OOP, and have read the introductory book by Apple.
-
Do you provide training?
Yes, we provide workshops and training. If you're interested, email us.
-
Can I get a “reverse charge” invoice without VAT?
Just click the "Generate Invoice" link in the receipt email and fill out your company data to get a VAT refund.
Updates
-
Mar 2020
Update for Swift 5
-
Nov 2017
Update for Swift 4
-
Dec 2016
Update for Swift 3
-
Dec 2015
Update for Swift 2
-
October 2015
Initial release
-
July 2015
Early access