Functional programming in JavaScript

Курс можно начать проходить в любое время

on demand

Сложность курса: middle

Старт курса

2015-12-09 2015-12-09 Europe/Kiev Functional programming in JavaScript --- Smartme University


Currently, and as it always has been, functional programming is an essential part in the development process of various types of applications. Functional programming in JavaScript was established right from the beginning. As the baby gets the eye colour from one of the parents, so JavaScript inherited this paradigm from the language proudly called Scheme.

In this course, we will delve into the functional programming theory, learn to write more abstract code without classes and prototypes.

This course is intended for basic and intermediate level programmers, who want to advance their skills beyond web-application development using popular frameworks and libraries.

Being one of the most important parts of JavaScript, its functional part was designed at the language creation and was inherited from Scheme language. Closures, anonymous functions, higher-order functions are JS programmer's everyday tools, and capabilities of these tools are often underestimated. Currently, functional programming is gaining popularity, going through another iteration in popularity. This is indicated by emergence of such libraries as Immutable, Redux, Lodash, Rambda, as well as Elm-lang, PureScript, Elexir languages and many others. In this particular course you will get to know the correct practices of functional decomposition, as well as the functional languages concepts, their differences and interaction. And of course, how to use it in JS. 

  1. Basic principles of functional programming
    1. Functions as units of abstraction
    2. Functions as behaviour descriptions
    3. Data as abstraction
  2. Applicative programming
    1. Applicative programming
  3. Closures
    1. Using Closures
    2. Closures as Abstractions.
  4. Function types
    1. Higher order functions 
    2. Function-Building Functions 
    3. Currying
    4. Partial Applications 
  5. Purity, Immutability 
    1. Pure and impure functional programming
    2. Immutability
    3. Object mutation
    4. Controlling mutation at function level