Awesome FP JS Awesome

This is a curated list of awesome functional programming code and learning resources for JavaScript. As a multi-paradigm programming language, JavaScript can be written in many styles. With these resources we want to help you to make better use of JavaScript’s support for writing programs in a functional way.

Functional programming is a style of programming which models computations as the evaluation of expressions. Contrast this with imperative programming where programs are composed of statements which change global state when executed. Functional programming typically avoids using mutable state and favors side-effect free functions and immutable data instead. This encourages writing composable and declarative programs that are easy to reason about.

Table of Contents

These may be appended to entries. Each should be preceded by a "+" or "-" to indicate presence or absence of the tag's meaning. "-" tags should only be included when they are likely to help someone filter libraries for their needs. For instance, -TS tags are probably useful for Typescript users screening for types, but -CT tags would be less likely to be helpful to anyone.


Data Structures

Write performant functional code by using the right data structures for the task.

Algebraic Data Types

Use the laws of math instead of always reinventing your own thing. Algebraic!


Functional Languages that Compile to JavaScript

Programming Tools





Examples and Exercises


Related Lists



:star: Suggestions and PRs are welcome! :star:

Please read the contribution guidelines to get started.



To the extent possible under law, Christoph Hermann has waived all copyright and related or neighboring rights to this work.