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 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.
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.
After defining the requirements for the Sudoku App, we will model the Sudoku table.
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.
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.
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.
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.
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.
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.
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.
The aim of this video is to take care of 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.
The goal of this video is to reiterate the main points learned in this volume and in the whole course.
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.