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
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.
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.
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.
Tests your understanding on the lectures that are available in this section.
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.
This set of quiz questions allows you to test your understanding on the previous lectures
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!
This set of question will test you understanding on composing functions!
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.
Set of questions to test your knowledge on Closure understanding.
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.
Questions on currying.
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!