Thinking Functionally in Swift

Understand functional programming in swift and write your own versions map, filter methods in Swift!
3.9 (10 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
441 students enrolled
25% off
Take This Course
  • Lectures 23
  • Length 2 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 10/2015 English

Course Description

This course is under active development, signup today before the price increases!

We all use Swift in our iOS development, we love it! Really "Swift is an great language". Have you ever seen Swifts beauty as a language rather than using for iOS development?

You keep on hearing about functional programming from every one, have you ever thought or gave a try on it? If you do so, people says functional programming concept is built on top of Maths! Does this fear you? Have you ever imagined how map, reduce methods in Swift designed? And their philosophy behind it?

In this course, your going to learn functional programming using your favourite language Swift in a fun way. This course is designed for beginners to understand how to get much benefit from both functional programming and Swift as well! Believe me, we are going to introduce functional concepts in plain english, no maths stuffs!!

The gist of the course is as follows:

1. Understand what is functional programming is all about

2. How Swift supports functional programming

3. Higher-order functions

4. Closures

5. Currying

6. Composition

7. Finally write your own version of map, filter, reduce using FP concepts!

and much more. And all the above in plain simple english terms and concice examples!

And we need to understand what this course is not:

1. Wont teach you Swift basics

2. Wont teach you how to run Swift program

And as mentioned before it teaches only "Functional Programming Using Swift".

At end of this course, students will be in a position to go and implement functional programming concepts in their iOS development, which results in maintainable code base.

What are the requirements?

  • XCode with Swift Playground
  • Swift Basics is needed
  • No Prior knowledge on Functional programming is required

What am I going to get from this course?

  • Understand functional programming concepts by examples
  • See FP paradigms like Higher-order functions, Closures, Composition, Currying!
  • Write their own functional API in swift
  • See how Swift library methods like map, reduce works

Who is the target audience?

  • Person who loves functional programming and want to excel that in Swift
  • Person without any Swift fundas is not suitable for this course.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: The Beginning

In this lecture, we are going to see the course roadmap. We are going see what all is covered in this course.


In this lecture, we are going to cover what all tools and software requries for running the samples associated with this particular course.


In this lecture, we are going to see what is playground and how we are going to use it for our complete course.

Section 2: First Class Functions

In this lecture, we will revisit and see how arguments in Swift are evaluated and passed on. This lectures gives the fundas of how data as arguments are passed among functions.


In this lecture, we are going to explain the main concept of functional thinking. How to pass functions as arguments. This lecture shows you very simple example of how one function takes or accepts other functions as arguments. Lecture also explains the differences between how values and functions are passed by Swift programming language.


In previous lecture, we saw the gist of how we can pass the functions as an arguments to other functions. This is possible because, Swift treats functions as "values" similar to other data types in the system. This lecture describes and explains whats meant by first class functions.

5 questions

Tests your understanding on the lectures that are available in this section.

Section 3: Higher Order Functions

In this lecture, we are going write a very simple API for finding the sum of squares and sum of triples. Using this simple API as an example, the upcoming lectures insist the idea on functional thinking and what can be done functionally to improve our API


In the previous lecture, we have defined a very simple API, in this lecture we are going to see the common patterns that are available in the API and think about how to solve / move this common pattern into functions


This lectures, solves the problem that we are being discussed in our previous two lectures. We will be forced to think functionally on solving the problem and thus introducing the concept of "Higher-Order" functions!


As now we have understood how to use higher-order functions to solve our problem, this lecture focus on how to design our functions, which can be used in our functional thinking way. Lecture also introduces the mathematical definition of an function.

4 questions

This set of quiz questions allows you to test your understanding on the previous lectures

Section 4: Composing Functions

In this lecture, we are going to see what are composing functions means. The lecture will give you the guidelines on how to find the functions which are eligible for functional composition. Yet again functional composition is another corner stone in our functional programming.


In the previous lecture, we saw what is function composition is all about. In this lecture, we are going to see its definition in maths! Don't worry, things are simple!


In this lecture, we will be defining a new operator, which we will be using for the function composition. This operator also helps us in visualise the flow in our functional composition.


We all think functional programming is new concept. But its not. In this lecture, we are going to see how we are actually using functional composition in our day to day life, without even thinking we are using it!

6 questions

This set of question will test you understanding on composing functions!

Section 5: Closures

In this lecture, we will start with an simple example of writing API for finding tables of a given number. After writing the API, we are going to analyse and see whats wrong with our implementation.


Continuing from our previous lecture, in this lecture will completely analyze our implementation of tables API. We will strive ourselves to functional thinking of how to solve our implementation in functional way!


As we now have already discussed about the issue of our implementation. In this lecture introduces the concept of closures and solve our problems using its idea!


The whole power of closure comes from its "remembering" capacity. In this lecture, we will focus on what all "things" an closure can remember when its born.


Since Swift is designed as functional language, it comes up with a new syntax for defining closures on the fly. We will re-write our implementation of tables API closure function using this new Swift syntax.

3 questions

Set of questions to test your knowledge on Closure understanding.

Section 6: Currying.

In this lecture, we will rewrite our tables implementation using yet another important concept in FP "Currying"!. This gives a very good overview on how currying is based on the idea of closures!


In this lecture, we are going to define the currying concept in more depth.


As we have seen in the previous lectures, how currying leads to write simple APIs. But the most practical use case of currying is introduce the functions for composing! Isn't that interesting? Thats exactly the topic of this lecture. We are going to see how currying leads to function composition.

5 questions

Questions on currying.

More to follow!

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Anto Aravinth, Software Developer & Passionate Teacher

Hi this is Anto. Well, I have around 3+ years Experience in Software development. During my software development there will be lot of learnings for me. I want my learnings to be shared with others! There are tough times when I learn the things. I want it to be easily sharable to others.

I still remember my teacher saying "If you want to understand one thing, you need to teach it". And thats exactly I have been doing in my company and also over here! I'm mostly into web development using Java and front-end technologies. I'm a teacher at my office and over here as well! :)

Apart from work, I'm an open source contributor to Groovy, Selenium and React Js. Member of JUG Chennai!

Ready to start learning?
Take This Course