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 AuthorZsolt 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 Developers Edge How to Double Your Career Speed with Soft-Skills.