Deep Dive into Functional JavaScript

Deep Dive into Functional JavaScript
Deep Dive into Functional JavaScript
English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 2h 47m | 577 MB

A practical guide to mastering functional programming in ES6 from the perspective of building real-world applications.

In this course, you will have an in-depth overview and the tools in your utility belt to write maintainable code in JavaScript.

We will stick to the latest version of JavaScript in this course, ES2017. You don't have to know ES2017 to benefit from the course, as we will introduce the language constructs that we use during it.

You will experience the benefits of functional programming even if your code is not purely functional. In this course, you will learn the building blocks that act as a utility belt in your arsenal, enabling you to write code that's easy to understand, extend, test, and debug. You will get hands-on practice on how to use currying, partial evaluation, map, reduce, filter, recursion, and other functional programming concepts in ES6.

What You Will Learn

  • Discover the principles of functional programming
  • Learn the benefits and drawbacks of functional programming compared to other styles
  • Learn the language constructs of ES6 that are used for functional programming
  • Write elegant code with chaining and context binding
  • Understand function composition and function sequencing in depth
  • Learn about higher order functions with a special emphasis on map, reduce, and filter
  • Translate SQL queries into chained map and reduce calls
  • Learn currying and partial application in practice
  • Learn recursion, tail-call optimization, and the role of accumulator variables
  • Experiment with optimization techniques combating the performance drawbacks of functional programming
  • Map out a plan for how to continue after the course
Table of Contents

Introduction to Functional Programming
The Course Overview
Imperative and Declarative Programming by Example
Principles of Writing Code in Functional Style
Benefits and Drawbacks of Functional Programming

Functional Programming in ES6
Getting Started with ES6
Deep and Shallow Cloning in JavaScript
Context Binding by Example
Chaining and Function Composition

Higher Order Functions in JavaScript
What are Higher Order Functions?
Handling JavaScript Arrays with Higher Order Functions
Introducing Map, Reduce, and Filter
Joins with Map-Reduce
Filtering Examples
Converting an Array of Nodes to a Tree

Currying and Partial Evaluation
Deep Dive into Currying
Partial Application
Rendering Templates Using Partial Application

Recursion, Tail Recursion, and Accumulator Variables
Recursive and Iterative Solutions in JavaScript
Optimization Techniques with Recursion

Recursion, Tail Recursion, and Accumulator Variables
Your Functional Programming Utility Belt
Your Learning Path