O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Learning Path: JavaScript: Learn Functional Programming with JavaScript

Video Description

Build web applications the functional way

In Detail

Functional programming has been around for decades, but it only got adopted by the JavaScript community in recent years. The benefits of using functions as the building blocks of a language is manifold, and when it comes to JavaScript, the advantages are only exponential.

This Video Learning Path delivers the building blocks of the functional paradigm in a way that makes sense to JavaScript developers. We’ll look at animated visualizations that’ll help explain difficult concepts such as higher-order functions, lenses and persistent data, partial application, currying, ES6, asynchronous code with promises and ES2017 async-await.

While we anchor these techniques into your mind with the practical usage, you will also learn about techniques to write maintainable software, test-driven development, top-down design, and bottom-up design. Finally, we will use Mocha and Chai to write unit tests for the functional part of the applications.

Prerequisites: Basic knowledge of JavaScript

Resources: Code downloads and errata:

  • Learn to Write Functional Javascript

  • Implementing and Testing Applications using Functional JavaScript


    This path navigates across the following products (in sequential order):

  • Learn to Write Functional Javascript (3h 48m)

  • Implementing and Testing Applications using Functional JavaScript (2h 36m)

  • Table of Contents

    1. Chapter 1 : Learn to Write Functional Javascript
      1. The Course Overview 00:05:53
      2. The Unbreakable Function 00:18:07
      3. Thinking of Functions in Terms of Their Return Values 00:12:33
      4. How to Identify and Encapsulate Impurities within Our Programs 00:12:56
      5. Promoting Reusability with Higher-Order Functions 00:18:51
      6. Replacing Loops with Higher-Order Functions 00:08:18
      7. A Better Way to Map and Filter 00:10:10
      8. Reasoning with Reduce 00:11:46
      9. Rendering UI Components with Higher-Order Functions 00:14:41
      10. What Partial Application and Curry Mean? 00:10:28
      11. Improving Higher-Order Functions with Partial Application 00:09:14
      12. Writing a Utility to Curry Functions 00:14:44
      13. Combining Map, Filter, and Reduce with Curried Functions 00:15:49
      14. Understanding Mutable and Immutable Data 00:16:24
      15. Simplifying Immutability Using Lenses 00:13:53
      16. Rendering Our Data into the DOM 00:14:57
      17. Using JSX and Virtual-DOM for Readability and Performance 00:20:11
    2. Chapter 2 : Implementing and Testing Applications using Functional JavaScript
      1. The Course Overview 00:04:07
      2. Functors in JavaScript 00:08:43
      3. Monads 00:07:06
      4. Escaping the Pyramid of Doom 00:09:50
      5. ES6 Promises and Functional Programming 00:14:10
      6. Asynchronous Functional Programming with ES6 Generator Functions 00:10:58
      7. Functional Programming with Async-Await 00:07:16
      8. What Is Lazy Evaluation? 00:10:30
      9. Using ES6 Generator Functions for Evaluating Lazy Sequences 00:09:22
      10. Introduction 00:04:41
      11. Weather App 00:04:23
      12. Application Setup 00:06:05
      13. Bottom-Up Design Using Test Driven Development 00:12:31
      14. Bottom-Up Design and TDD (Continued) –Parsing the Response 00:06:41
      15. Handling Timezones 00:15:19
      16. Getting Weather Data with Promises and Async-Await 00:11:53
      17. Rendering the Weather App 00:06:51
      18. Course Summary and Next Steps 00:05:49