Book Image

Hands-On Functional Programming with TypeScript

By : Remo H. Jansen
Book Image

Hands-On Functional Programming with TypeScript

By: Remo H. Jansen

Overview of this book

Functional programming is a powerful programming paradigm that can help you to write better code. However, learning functional programming can be complicated, and the existing literature is often too complex for beginners. This book is an approachable introduction to functional programming and reactive programming with TypeScript for readers without previous experience in functional programming with JavaScript, TypeScript , or any other programming language. The book will help you understand the pros, cons, and core principles of functional programming in TypeScript. It will explain higher order functions, referential transparency, functional composition, and monads with the help of effective code examples. Using TypeScript as a functional programming language, you’ll also be able to brush up on your knowledge of applying functional programming techniques, including currying, laziness, and immutability, to real-world scenarios. By the end of this book, you will be confident when it comes to using core functional and reactive programming techniques to help you build effective applications with TypeScript.
Table of Contents (14 chapters)
5
The Runtime – Closures and Prototypes

Working with Funfix

Funfix is a collection of functional programming utility functions. Funfix can be compared with Ramda. Just like Ramda, Funfix can be used to compose functions or partially apply functions. However, in this section, we are going to focus on the usage of some of the Funfix features that are related to some of the data types that we previously explored in Chapter 7, Category Theory.

We are going to start by installing Funfix:

npm install funfix @types/funfix

The examples that we are going to implement in this section are going to require a couple of additional npm modules. We are going to use node-fetch to send HTTP requests from a Node.js application. We are also going to use some of the Node.js core modules, which means that we are going to need the type definitions for Node.js as well:

npm install node-fetch @type/node-fetch @types/node

In our first Funfix...