Mastering Functional JavaScript Libraries
0.0 (0 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.
4 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Mastering Functional JavaScript Libraries to your Wishlist.

Add to Wishlist

Mastering Functional JavaScript Libraries

Master the art of Web application development using popular functional Javascript Libraries
0.0 (0 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.
4 students enrolled
Created by Packt Publishing
Last updated 8/2017
Current price: $10 Original price: $125 Discount: 92% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 3 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Learn how to use Underscore, LoDash, and Lazy .js as well as the ins and outs of using immutable data structures with Immutable .js
  • Learn the basics of using functional programming languages that compile to java script: Scala, Elm, PureScript, and ClojureScript
  • Link functional programming principles with their implementations in different libraries
  • Implement a web application with LoDash and RxJS
  • Understand functional reactive programming in depth and how to connect your application with the Slack API
  • Master several refactoring steps to get an idea of how to make your code more maintainable
View Curriculum
  • In this course, you will get an overview of state of the art JavaScript libraries used for functional and functional reactive programming

The goal of this course is to give you hands-on experience with JavaScript functional programming libraries. You will discover throughout the course how easy it is to apply functional programming concepts in practice.
In the first section, you will learn how different functional programming libraries implement automatic currying, partial application, lazy evaluation, higher-order functions, promises, cloning, chaining, function composition, and immutable data structures. You will execute code in Underscore.js, LoDash, Lazy.js, Ramda.js, Immutable.js, Scala, Elm, PureScript, and ClojureScript.
In order to learn how to use functional programming libraries in depth, in the second and third sections you will learn how to implement two web-applications using LoDash and RxJS.
The LoDash application shows you how to process matrixes with LoDash, by implementing a Sudoku game in JavaScript. We will model the Sudoku table with LoDash, collect all the constraints of the table, and validate it. The Sudoku table will be rendered using Underscore templating, and DOM events will help you manipulate state space with user interactions.
The third section introduces functional reactive programming using RxJS. Functional reactive programming deserves its own section, as it is a comprehensive topic providing you with a different developer experience from most of the other functional programming libraries. After learning the fundamentals of functional reactive programming and RxJS, you will learn how to put the theory into practice by implementing a web application. This web application uses the Slack API to monitor the activity of different Slack channels. Beyond submitting Ajax requests, you will also learn how to use web sockets to display live updates on your site using event streams.

About the Author

Zsolt Nagy is a web development team lead, mentor, and software engineer living in Berlin, Germany.
As a software engineer, Zsolt continuously challenges himself to stick to the highest possible standards when improving his own knowledge. The best way to learn is to create a meaningful product on the way. Until you reach this state, the second best way of learning is to share with others what you learned and how you structure your thoughts.
Zsolt is an author of the book and video course ES6 in Practice , introducing you to all meaningful features of ES6. He is also an author of the book The Developer’s Edge – How to Double Your Career Speed with Soft-Skills.

Who is the target audience?
  • This course is geared towards software developers who would like to improve their skills and expertise by sticking to the highest quality standards when it comes to writing code.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
19 Lectures
Bridging Functional Programming Theory and Practice
7 Lectures 01:04:00

This video gives an overview of the entire course.

Preview 04:55

In this video, we will discover the fundamentals of Underscore.js as a functional programming utility belt in JavaScript.


In this video, we will learn the fundamentals of LoDash up to a level, where you will be able to follow the practical example of the next section.


This library really shines when it comes to tasks that can be implemented using lazy evaluation. You will learn how to define finite and infinite sequences and evaluate them lazily. As a practical application, we will learn how to set up lazy event streams for HTTP requests.


The aim of this video is to compare and contrast Ramda to the libraries we learned in the previous sections to find out why Ramda claims to do functional programming in the right way. Beyond the principles of Ramda.js, you will discover the benefits of auto-currying in Ramda. We will conclude this video with a practical example on fetching API data with promises.


This video will discover a library, providing you immutable data structures that are not only bulletproof but also efficient and convenient to use.


This video will discover how to solve a practical example using four different functional languages that compile to JavaScript. We will solve problems in ClojureScript, PureScript, Scala, and Elm.

Functional Languages That Compile to JavaScript
LoDash in Practice
5 Lectures 49:08

After defining the requirements for the Sudoku App, we will model the Sudoku table.

Preview 12:23

After collecting all the nine tuples of the Sudoku table, we will implement a function that checks whether all constraints of the Sudoku table are satisfied.

Modelling Field Constraints

It is time to render the Sudoku model in our browser. According to the model-view-presenter paradigm, we will create the view part, namely, a Sudoku underscore template and the presenter part in the form of a JavaScript file rendering the template. We will demo the results in our browser.

Rendering the Sudoku Table

Now that the Sudoku table is rendered, we have to implement user interactions to make the application usable in practice. We will define click events and key events for the purpose of manipulating the contents of the Sudoku table.

Event Handling

In order to implement all the requirements, we have to render the invalid state of the Sudoku table, and create a Sudoku timer with the help of LoDash.

Table Validation and Conclusion
Functional Reactive Programming Using RxJS
7 Lectures 53:44

Before writing any code in RxJS, you will learn the foundations of reactive programming. This way, you will understand RxJS more deeply, as the thought process behind your code will stand on solid grounds.

Preview 07:51

The aim of this video is to get started with the fundamentals of RxJS. You will learn how to create observables, how to transform them, how to combine them, and how to subscribe to them. By the end of this video, you will have enough knowledge so that you can start writing a simple application in RxJS.

Introduction to RxJS

After defining the requirements of the RxJS app we will be implementing, you will learn how to use the Slack API for the purpose of implementing the application in RxJS.

RxJS in Practice –Creating a Web Application Using the Slack API

The aim of this video is to establish the model layer of the Slack application. We will use RxJS to fetch all slack channels belonging to your account, fetch messages belonging to a channel, and get live updates.

Fetching Data with RxJS Using the Slack API

The aim of this video is to take care of rendering the application.

Rendering the Application

In this video, you will now get a chance to finish the Slack app based on the code we created in the previous videos. You will receive some challenges that you can implement yourself, and then compare your code to the reference solutions.

RxJS in Practice – Slack App Exercises

The goal of this video is to reiterate the main points learned in this volume and in the whole course.

Course Summary
About the Instructor
Packt Publishing
3.9 Average rating
8,175 Reviews
58,763 Students
686 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.