Thinking Functionally in Swift
3.7 (13 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.
449 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Thinking Functionally in Swift to your Wishlist.

Add to Wishlist

Thinking Functionally in Swift

Understand functional programming in swift and write your own versions map, filter methods in Swift!
3.7 (13 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.
449 students enrolled
Created by Anto Aravinth
Last updated 10/2015
English
Current price: $10 Original price: $20 Discount: 50% off
4 days left at this price!
30-Day Money-Back Guarantee
Includes:
  • 2 hours on-demand video
  • 1 Article
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • 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
View Curriculum
Requirements
  • XCode with Swift Playground
  • Swift Basics is needed
  • No Prior knowledge on Functional programming is required
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.

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.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
23 Lectures
01:47:51
+
The Beginning
3 Lectures 07:52

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

Preview 03:02

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

What all you need?
02:21

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

Intro to XCode Playground
02:29
+
First Class Functions
3 Lectures 14:31

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.

Preview 02:10

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.

Preview 07:07

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.

Preview 05:14

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

Functions as arguments
5 questions
+
Higher Order Functions
4 Lectures 20:59

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

Finding sum of squares and triples
03:56

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

Identifying the common pattern
02:47

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!

Higher-Order Functions.
10:23

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.

Functions are very small units
03:53

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

Higher Order Functions
4 questions
+
Composing Functions
4 Lectures 24:14

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.

Composing Functions
13:23

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!

Function Composition Definition.
02:40

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.

Defining new operator for function Composition.
05:35

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!

Unix Philosophy
02:36

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

Composing Functions
6 questions
+
Closures
5 Lectures 19:36

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.

Find a tables of a given number
02:41

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!

Whats wrong with our code?
02:19

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!

Introducing Closure!
08:43

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.

Closure: Remembers where its born
04:05

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.

Using Swift syntax to create functions
01:48

Set of questions to test your knowledge on Closure understanding.

Closures
3 questions
+
Currying.
4 Lectures 20:39

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!

Rewriting our tables API using currying!
06:18

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

Currying Definition.
04:52

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.

Currying leads to Composition
09:19

Questions on currying.

Currying
5 questions

More to follow!
00:10
About the Instructor
Anto Aravinth
4.3 Average rating
128 Reviews
2,782 Students
3 Courses
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!