Track Awesome Fp Js Updates Weekly
:sunglasses: A curated list of awesome functional programming stuff in js
🏠 Home · 🔍 Search · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 stoeffel/awesome-fp-js · ⭐ 6K · 🏷️ Programming Languages
Nov 25 - Dec 01, 2024
Libraries
- klubok (⭐1) - Pipes with easy mocking, intended for huge amount of unit tests. +TS
Feb 12 - Feb 18, 2024
Libraries
- PureEval (⭐37) - A powerful JavaScript functional programming toolset, including utility functions and abstract data structures.
- context-fp (⭐2) - Microscopic functional programming context aka dependency injection. +TS
Oct 16 - Oct 22, 2023
Libraries
- Verticalize (⭐301) - Super lightweight function that looks and behaves like a pipe operator.
Sep 18 - Sep 24, 2023
Libraries / Algebraic Data Types
- sweet-monads (⭐346) - A collection of popular monads (such as
Either
andMaybe
) and the lazy iterator.
Sep 04 - Sep 10, 2023
Libraries
- hyogwa (⭐57) - Natural 🌿 effect system that fits TypeScript; Write codes as you write plain typescript code.
Mar 13 - Mar 19, 2023
Resources / Videos
- Functional Programming in TypeScript - Discover functional programming with Typescript and create a library like fp-ts alongside Sahand Javid in this beginner-friendly YouTube playlist.
Oct 10 - Oct 16, 2022
Libraries
- ts-pattern (⭐12k) - The exhaustive Pattern Matching library for TypeScript, with smart type inference. Pattern Matching is a code-branching technique coming from FP languages.
Libraries / Data Structures
- List (⭐1.7k) - An extremely fast immutable list with a comprehensive functional API. Designed to seamlessly integrate with Ramda (⭐1.7k).
Sep 12 - Sep 18, 2022
Community / Talk
- Functional Programming Slack channel – Community with a friendly channel for JavaScript as well as many other channels about functional programming in general.
Jun 06 - Jun 12, 2022
Libraries
- true-myth (⭐1k) A library for safe, idiomatic null and error handling in TypeScript, with
Maybe
andResult
types, supporting both a functional style and a more traditional method-call style
Apr 18 - Apr 24, 2022
Libraries
- functional.js (⭐223) – A lightweight functional JavaScript library that facilitates currying and point-free / tacit programming.
- fp-multik - JS/TS lightweight value-multimethod util
Feb 07 - Feb 13, 2022
Libraries
- ts-belt - Fast, modern, and practical utility library for FP in TypeScript. (Uses a data-first approach like remeda, but is faster than remeda, ramda, rambda, and lodash/fp.)
Dec 06 - Dec 12, 2021
Libraries
- fxts (⭐937) - Lazy evaluation and concurrency. +TS
Oct 25 - Oct 31, 2021
Libraries
- Ditox.js (⭐93) - Powerful dependency injection container for building modular apps. +TS
- RxEffects (⭐36) - Reactive state and effect management with RxJS. +TS
Oct 11 - Oct 17, 2021
Libraries
- effect-ts (⭐7.7k) – A Fully-fledged functional effect system for typescript with a rich standard library. +TS
- qio (⭐74) – A type-safe, functional, performant, lawful, composable data structure that solves practical problems of effect-full code in node and browser. +TS
Functional Languages that Compile to JavaScript / Lenses
- Gleam - Gleam is a typed, functional language that compiles to Erlang and JavaScript.
Oct 04 - Oct 10, 2021
Libraries
- ts-multimethod (⭐4) - TypeScript multimethods inspired by Clojure multimethods. +TS
- ts-fp-di (⭐4) - Tiny TypeScript functional dependency injection, based on Node.js AsyncLocalStorage. +TS
Sep 13 - Sep 19, 2021
Libraries
- lfi (⭐233) - A Lazy Functional Iteration Library Supporting Sync, Async, and Concurrent Iteration.
Dec 21 - Dec 27, 2020
Functional Languages that Compile to JavaScript / Lenses
- ReScript – (previously known as Bucklescript) ReScript is a type-safe language that compiles to the highest quality of clean, readable and performant JavaScript code.
Oct 05 - Oct 11, 2020
Libraries
- Rambdax (⭐221) - Extended version of Rambda
Aug 31 - Sep 06, 2020
Libraries
- omg-curry (⭐137) - Comprehensive Curry Library with Operator Curry, Curry from functions, Decurry and Infifnite Curries.
Jul 06 - Jul 12, 2020
Libraries
- rocket-pipes (⭐25) - Powerful pipes, that chain Promise and ADT like Maybe or Either from popular FP libraries. +TS
Jun 01 - Jun 07, 2020
Libraries
- rubico (⭐276) - 🏞 [a]synchronous functional syntax
Resources / Books
- scriptum (⭐384) - a no-frills functional programming library and a online course based on it
Mar 30 - Apr 05, 2020
Libraries
- fp-ts - Typed functional programming in TypeScript. +CT, +TS.
Mar 16 - Mar 22, 2020
Libraries
- futil-js (⭐994) - A collection of functional utilities that could conceivably be part of a library like lodash/fp, but for some reason or other are not.
Feb 17 - Feb 23, 2020
Resources / Articles
- You don't (may not) need loops ➿ (⭐1.1k) - Loops are one of the first constructs that junior programmers learn, but they can pose many potential issues in the software development process, and could be avoided in many cases.
Nov 25 - Dec 01, 2019
Libraries
- Ramda (⭐24k) – A practical functional library for JavaScript that is designed specifically for a functional programming style. A style that makes it easy to create functional pipelines and never mutates user data. +TS.
- Folktale – A standard library for functional programming in JavaScript. Typescript support expected mid-2020. -TS.
- lodash/fp (⭐60k) – An instance of Lodash (⭐60k) with its methods wrapped to produce immutable, auto-curried, iteratee-first, data-last methods. +TS.
- 101 (⭐1.6k) – A modern and modular JavaScript utility library made to work well with vanilla JavaScript methods. -TS
- barely-functional (⭐107) – A tiny (2.7kb) functional programming library using native ES5/6 operations. -TS.
- prelude.ls – A functionally oriented utility library somewhat based off of Haskell's Prelude module. -TS.
- preludejs (⭐100) - Hardcore Functional Programming for JavaScript. -TS.
- 1-liners (⭐793) – Functional tools that couldn’t be simpler. A dead simple functional utility belt, hand-crafted with love and attention. -TS.
- funfix (⭐632) – Funfix is a library of type classes and data types for Functional Programming in JavaScript, TypeScript and Flow. +CT, +TS.
- pico-lambda (⭐71) - Arrays, Strings and things the functional way. A 640b functional library based on native methods. -TS.
- pareto-js (⭐261) - An extremely small, intuitive and fast functional utility library for JavaScript -TS.
- fpEs (⭐43) - A small library provides simple usages of basic FP & pattern-matching/sumtype & MonadIO/Rx & Optional for Javascript. -TS.
- Creed – Sophisticated and functionally-minded async with advanced features: coroutines, promises, ES2015 iterables, fantasy-land. -TS.
- TGrid (⭐146) - Grid Computing Framework, Network & Thread extension of TSTL (⭐603), supporting RFC (Remote Function Call). +TS.
- Ferrum (⭐519) – Iterator library with support for objects as iterables, lazy evaulation and
pipe()
; implements Traits (from Rust)/Type Classes (from Haskell) in JS. -TS.
- iter-tools (⭐170) - a rich toolset for working with iterables, both sync and async. +TS.
- remeda A function library roughly subsetting Ramda, but written in Typescript and thus more type-friendly. +TS.
Libraries / Data Structures
- Immer (⭐28k) – Immer is a tiny package for immutable state based on copy-on-write mechanism. +TS.
- DerivableJS (⭐515) – Functional Reactive State for JavaScript and TypeScript. DerivableJS enables you to make elegant declarative statements about how your bits of state are related. +TS.
- collectable (⭐272) – Super high-performance immutable data structures for modern JavaScript and TypeScript applications. +TS.
- prelude.ts (⭐377) - Immutable persistent collections, functional constructs such as Option and Either, and combinators. Implemented in Typescript but supports javascript too. +CT, +TS.
- TSTL (⭐603) - C++ STL (Standard Template Library) is implemented in TypeScript. STL Containers, iterators, algorithms and functors, that following functional programming rule, are provided. +TS.
Libraries / Algebraic Data Types
- Sanctuary (⭐3k) – Sanctuary makes it possible to write safe code without null checks. +CT, +TS.
- monet.js – A library that assists functional programming by providing a rich set of Monads and other useful functions. +CT, +TS.
- crocks (⭐1.6k) – A collection of popular Algebraic Data Types with the main goal to curate and provide not only a common interface between each type, but also all of the helper functions needed to hit the ground running. -TS.
- purify (⭐1.5k) - Functional programming library for TypeScript focusing on ADTs. +CT, +TS.
- Pratica (⭐468) - Small, simple, easy FP data types for pragmatic and productive developers who need to ship reliable code fast. +CT, +TS.
- Tifi - Tifi is a library for functional programming in TypeScript. It solves a problem of the existence of both
undefined
andnull
. Tifi is inspired by the OCaml/Reason utilities for the option data type. +CT, +TS.
Nov 04 - Nov 10, 2019
Functional Languages that Compile to JavaScript / Lenses
- TypeScript - TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Aug 26 - Sep 01, 2019
Resources / Books
- Grokking Simplicity teaches functional programming from first principles. It uses JavaScript for all code examples and it uses real-world scenarios. By Eric Normand (2019)
Aug 19 - Aug 25, 2019
Resources / Articles
- Functors from first principle - explained with JS - Explaining functors concept using JavaScript.
Jun 24 - Jun 30, 2019
Resources / Articles
- A practical guide to writing more functional Javascript - A step by step guide to convert imperative JavaScript to more declarative, functional JavaScript.
May 13 - May 19, 2019
Resources / Examples and Exercises
- Holdem Evaluator - Yet another Holdem Evaluator with Ramda functional style
Mar 25 - Mar 31, 2019
Libraries
- react-on-lambda (⭐264) - Replace JSX in React with functions (currying, compositions and etc).
Resources / Articles
- F# for JavaScript Devs - Showcasing the similarities between F# and JavaScript
Feb 18 - Feb 24, 2019
Resources / Articles
- Basic Monads in Javascript - Introduction to 2 easy monads in Javascript, Maybe & Either.
Jan 21 - Jan 27, 2019
Resources / Articles
- Functional Programming Principles in Javascript - Practical code examples to learn functional programming concepts like pure function, immutability, first-class entities, and higher order functions
Community / Related Lists
- tk-learning-center/Functional Programming Learning Path (⭐990) - A Learning Path for Functional Programming
Oct 29 - Nov 04, 2018
Resources / Articles
- Functional Composition in Javascript – Step by step explanation of how to compose functions in javascript.
Oct 08 - Oct 14, 2018
Libraries / Lenses
- shades (⭐414) – A lodash-inspired lens-like library for Javascript.
Functional Languages that Compile to JavaScript / Lenses
- Koka – Koka is a function-oriented programming language that seperates pure values from side-effecting computations with a familiar JavaScript like syntax.
Oct 01 - Oct 07, 2018
Libraries / Algebraic Data Types
- MojiScript (⭐149)- an async-first, opinionated, and functional language designed to have 100% compatibility with JavaScript engines
Aug 20 - Aug 26, 2018
Libraries
- Rambda (⭐1.7k) - A faster alternative to Ramda in under 10kB.
Resources / Videos
- JavaScript Programmers Should Learn Algebraic Data Types -- May 2018 -- UtahJS Lehi - Seth House explains how ADTs (Algebraic Data Types) can be useful to JavaScript developers.
Jul 23 - Jul 29, 2018
Resources / Articles
- Anonymous Recursion in JavaScript - Short and easy to understand article about implementing anonymous recursion in JavaScript.
Jul 16 - Jul 22, 2018
Functional Languages that Compile to JavaScript / Lenses
- RacketScript (⭐13) – RacketScript aims to leverage both JavaScript and Racket's ecosystem, and make interoperability between them clean and smooth.
Mar 26 - Apr 01, 2018
Libraries
- Ramda-extension (⭐167) is set of utility point-free functions composed only from Ramda functions.
Mar 19 - Mar 25, 2018
Libraries / Algebraic Data Types
- kudo-js (⭐23) - A small utility library with a set of Algebraic Data Types and Helper functions to help you write code in a functional programming style in Javascript
Feb 19 - Feb 25, 2018
Functional Languages that Compile to JavaScript / Lenses
- Reason – Reason is a new interface to OCaml, a highly expressive dialect of the ML language featuring type inference and static type checking.
Jan 22 - Jan 28, 2018
Libraries
- Ramda Adjunct (⭐682) is a community-maintained extension of Ramda.
Resources / Articles
- Master the JavaScript Interview: What is Functional Programming? - A simple introduction by @ericelliott to functional principles and vocabulary.
Jan 08 - Jan 14, 2018
Programming Tools / Lenses
- ftor (⭐44) - A pluggable runtime type checker and functional debugging tool that supports parametric and row polymorphism, implicit rank-2 types and algebraic data types via Scott Encoding.
Oct 30 - Nov 05, 2017
Resources / Videos
- Functional Programming Basics In ES6 - A complete introduction to functional programming in javascript made it easy by ES6.
Oct 09 - Oct 15, 2017
Resources / Examples and Exercises
- Learn Rx – A series of interactive exercises introducing five basic ingredients of functional (reactive) programming: the
map
,filter
,concatAll
,reduce
, andzip
functions.
Aug 21 - Aug 27, 2017
Functional Languages that Compile to JavaScript / Lenses
- RamdaScript (⭐132) - A Lisp that compiles to opinionated JavaScript on top of RamdaJS
Jul 24 - Jul 30, 2017
Libraries
- zen-signals (⭐53) – ☯ The simplest signal library possible
Functional Languages that Compile to JavaScript / Lenses
- ion (⭐80) - no BS JS
Jun 05 - Jun 11, 2017
Libraries
- Javascript Parser Combinator (⭐145) – Javascript parser combinator implementation inspired by the Haskell's Parsec
- fun-task (⭐373) – An abstraction for managing asynchronous code in JS. Tasks are similar to Promises with the key difference that Tasks can represent a computation while Promises can represent only the results of a computation. Ships with Flow type definitions.
- most (⭐3.5k) – Ultra-high performance reactive programming to help you compose asynchronous operations on streams of values and events without many of the hazards of side effects and mutable shared state.
Functional Languages that Compile to JavaScript / Lenses
Programming Tools / Lenses
- 4.5 (⭐21) – A functional assertions library. If you prefer functional style APIs and practices in JavaScript, this library aims to solve this with functionally-oriented assertions that are lazy and monadic.
- hm-def (⭐198) – Runtime type checking for JS with Hindley Milner signatures.
May 08 - May 14, 2017
Resources / Examples and Exercises
- Escape from Callback Mountain (⭐258) - Design & refactoring tips for Promise-based Functional JavaScript. Key benefits include better readability, testability, and reusability. MIT.
Apr 10 - Apr 16, 2017
Resources / Articles
- Lazy, composable, and modular JavaScript – Use four new features of ES6 – iterables, generators, fat arrows, and for-of – in conjunction with higher-order functions, function composition, and lazy evaluation, to write cleaner and more modular JavaScript.
Mar 20 - Mar 26, 2017
Resources / Articles
- Composing Software - A series of articles on learning functional programming and compositional software techniques in JavaScript ES6+ from the ground up by @ericelliott.
Mar 13 - Mar 19, 2017
Libraries
- FPO.js (⭐447) – FP library for JavaScript by Kyle Simpson (aka getify). Supports named-argument style methods.
Mar 06 - Mar 12, 2017
Libraries / Data Structures
- Baobab (⭐3.2k) – persistent and optionally immutable data tree with cursors.
Jan 23 - Jan 29, 2017
Libraries / Lenses
- partial.lenses (⭐918) – Partial lenses is a comprehensive, high-performance optics library for JavaScript.
Jan 09 - Jan 15, 2017
Resources / Articles
- Introduction to Immutable.js and Functional Programming Concepts - Learn about functional data structures and their uses in this overview of Facebook's popular library for JavaScript: Immutable.js.
Dec 26 - Jan 01, 2016
Libraries
- bluebird-promisell (⭐44) - A practical functional programming library for promises.
Dec 19 - Dec 25, 2016
Resources / Videos
- Anjana Vakil: Learning Functional Programming with JavaScript - JSUnconf 2016 - A simple and understandable introduction of functional proramming in javascript.
Dec 05 - Dec 11, 2016
Programming Tools / Lenses
- eslint-plugin-fp (⭐967) - ESLint rules for functional programming
Oct 31 - Nov 06, 2016
Resources / Articles
- Functional Programming for JavaScript People - A complete introduction to functional programming patterns by Chet Corcos with a lot of javascript examples.
Resources / Videos
- Functional programming in JavaScript - A series by Mattias Petter Johansson, from the youtube channel FunFunFunction, that is specifically about popularization of functional programming in JavaScript.
Oct 10 - Oct 16, 2016
Functional Languages that Compile to JavaScript / Lenses
- Quack (⭐323) - A multi-paradigm programming language with gradual and duck typing that targets PHP and JS.
Oct 03 - Oct 09, 2016
Libraries / Data Structures
- Icepick (⭐421) Utilities for treating frozen JavaScript objects as persistent immutable collections
Resources / Articles
- So You Want to be a Functional Programmer - Easy to understand, with some examples, introduction to Functional Programming in Javascript and Elm.
Aug 29 - Sep 04, 2016
Libraries / Data Structures
- imlazy (⭐103) – Library for creating and manipulating lazy iterables using the ES2015 iteration protocols.
Aug 22 - Aug 28, 2016
Libraries
- js-joda (⭐1.6k) – An immutable date and time library that provides a simple, domain-driven and clean API based on the ISO8601 calendar.
Resources / Books
- Functional-Light JavaScript (⭐17k) – This book explores the core principles of functional programming (FP) that can be applied to JavaScript. But what makes this book different is that it approaches these principles without all the heavy terminology.
Aug 15 - Aug 21, 2016
Libraries / Algebraic Data Types
- Fantasy Land (⭐10k) – Not a library, but a specification of the Monad laws for libraries to follow.
- Static Land (⭐772) – Specification similar to Fantasy Land but based on static methods rather than instance methods.
Jun 27 - Jul 03, 2016
Resources / Articles
- Functional Mumbo Jumbo – ADTs – A beginner-friendly introduction to Algebraic Data Types.
May 09 - May 15, 2016
Libraries / Algebraic Data Types
- immutable-ext (⭐489) – FantasyLand extensions for Immutable.js (⭐33k).
Resources / Books
- Professor Frisby’s Mostly Adequate Guide to Functional Programming (⭐23k) – This is a book on the functional paradigm in general using the world’s most popular functional programming language: JavaScript. It’s a practical introduction that builds up intuition through real-world examples. Strongly recommended. By Brian Lonsdorf (2016)
- JavaScript Allongé, the “Six” edition. Starts with as little as possible about functions – but no less! – and builds up towards powerful combinators and decorators. A foundational book. By Reginald Braithwaite (2016)
- Functional Programming in JavaScript teaches JavaScript developers functional techniques that will improve extensibility, modularity, reusability, testability, and performance. Through concrete examples and jargon-free explanations, this book teaches you how to apply functional programming to real-life development tasks. By Luis Atencio (2016)
- Eloquent JavaScript. A modern introduction to programming using JavaScript. By Marijn Haverbeke (2014)
- Functional JavaScript teaches how to create code that’s beautiful, safe, and simple to understand and test by using JavaScript’s functional programming support. By Michael Fogus (2013)
Resources / Articles
- FP Concepts in JavaScript – An introduction to Functional Programming Concepts in JavaScript. Uses the Ramda library to teach the concepts of composition, pointfree style, and functors through the simplest of examples.
- Functional programming with JavaScript – Another introduction to Functional Programming in JavaScript with a focus on three key themes: computation as the application of functions, statelessness, avoiding side effects.
- A gentle introduction to functional JavaScript – A four-part series introduction functional programming in JavaScript that gets you up to speed what all the hype about functional programming is all about.
- Why Curry Helps – A short overview of how to write reusable and declarative code using currying.
- Favoring Curry - Practical applications of currying using Ramda.
- JavaScript and Type Thinking – Learn to reason about your JavaScript code with type thinking. Algebraic Data Types are introduced as a conceptual basis to reason about program entities.
- Why Ramda – To those not used to functional programming, Ramda seems to serve no purpose whatsoever. However, it does offer a different style of coding, a style that’s taken for granted in purely functional programming languages: Ramda makes it simple for you to build complex logic through functional composition.
- Monads in JavaScript – An introduction to the Monad design pattern in JavaScript.
- A Monad in Practicality: First-Class Failures – A walk through some practical use cases for specific monadic structures in JavaScript: use the
Maybe
monad to handle simple failure cases and model more complex scenarios with theEither
monad or theValidation
applicative functor.
- Data Structures in JavaScript – A series of blog posts that reimplements various data structures in JavaScript to better understand their benefits and downsides.
Resources / Videos
- Functional programming patterns for the non-mathematician – Learn about practical use cases for functors, applicatives, and monads.
- Pure JavaScript – Christian Johansen will show you how you can significantly up your game by leaving loops behind and embracing functions as the primary unit of abstraction.
Resources / Examples and Exercises
- FPJS-Class (⭐93) – Functional Programming learned through JavaScript.
- functional-javascript-workshop (⭐2.1k) – The goal of this workshop is to create realistic problems that can be solved using terse, vanilla, idiomatic JavaScript to teach fundamental functional programming features of JavaScript.
Apr 18 - Apr 24, 2016
Libraries
- fn-curry (⭐5) – A simple function to curry a function.
- date-fp (⭐121) – A functional utility library for working with JavaScript dates. All functions in date-fp are pure, autocurried and will not mutate the date objects they are applied to.
Mar 14 - Mar 20, 2016
Libraries / Algebraic Data Types
- Fluture (⭐2.5k) – A Future library with included control utilities, high performance and great error messages.
Community / Related Lists
- lucasviola/Awesome Functional Programming (⭐963) – Awesome resources on functional programming theory and learning materials.
- xgrommx/Awesome Functional Programming (⭐3.5k) – A ton of articles on functional programming, as well as a huge list of functional libraries for many programming languages.
Mar 07 - Mar 13, 2016
Libraries
- fnuc (⭐16) – A functional library for CoffeeScript (and JavaScript) to facilitate functional composition and higher order functions.
- curry (⭐85) – Curry your functions using function bind syntax.
- compose-function (⭐56) – Compose a new function from smaller functions.
- functionize (⭐49) – A collection of functions which aid in making non-functional libraries functional.
- lambdajs (⭐143) – The full ECMAScript API done a functional way.
- fp-dom – Making the DOM functional.
- trifl (⭐36) – A functional user interface library with unidirectional dataflow and a virtual dom.
- funcy (⭐247) – An experiment in adding functional pattern matching to JavaScript. Experimental 🚩
- _part_ (⭐41) – A micro library that encourages functional programming by making native methods available as partially applied functions.
- claire (⭐79) – A property-based testing library for clearly specifying code invariants and behaviour.
Libraries / Data Structures
- Immutable.js (⭐33k) – Immutable persistent data collections.
- Mori (⭐3.4k) – ClojureScript’s persistent data structures and supporting API from the comfort of vanilla JavaScript.
- immutable-sequence.js (⭐16) – High performance implementation of Immutable Sequence in JavaScript, based on Finger Trees (⭐45).
- Timm – Immutability helpers with fast reads and acceptable writes.
- Lazy.js (⭐6k) – A utility library with a lazy engine under the hood that strives to do as little work as possible while being as flexible as possible.
Libraries / Algebraic Data Types
- daggy (⭐701) – Library for creating tagged constructors.
- union-type (⭐478) – A small JavaScript library for defining and using union types.
- freeky (⭐176) – A collection of Free monads.
- fantasy-combinators (⭐66) – Common combinators.
- fantasy-birds (⭐91) – Port of the Haskell package Data.Aviary.Birds. Everything for your combinatory needs.
Libraries / Lenses
- lenses (⭐214) – Composable kmett (⭐2k) style lenses.
- optics (⭐87) – Profunctor optics (Lens, Prism, iso).
- ramda-lens (⭐184) – 🐏 🔎 Lens library built on Ramda.
- fantasy-lenses (⭐109) – Composable, immutable getters and setters. (Profunctor lenses WIP)
- nanoscope (⭐177) – Lenses with dotty support.
Functional Languages that Compile to JavaScript / Lenses
- ClojureScript (⭐9.2k) – Compiles Clojure, a hosted Lisp with immutable persistent data structures, to JavaScript.
- Elm – A type-safe functional programming language for declaratively creating web browser-based graphical user interfaces. Implemented in Haskell.
- PureScript – A small strongly typed programming language that compiles to JavaScript.
- Idris – A general purpose pure functional programming language with dependent types.
- GHCJS (⭐2.6k) – Haskell to JavaScript compiler, based on GHC.
- ElixirScript (⭐1.6k) – Compiles a subset of Elixir, a dynamic, functional language designed for building scalable and maintainable applications, to JavaScript.
- Js_of_ocaml – Compiles OCaml bytecode to JavaScript, making it possible to run OCaml programs in the browser.
- LiveScript – LiveScript has a straightforward mapping to JavaScript and allows you to write expressive code devoid of repetitive boilerplate.
Resources / Articles
- Functional programming – Many articles on various aspects of functional programming in JavaScript by Gleb Bahmutov.
- Functional Programming Jargon (⭐19k) – Jargon from the functional programming world explained in JavaScript.
Resources / Videos
- Classroom Coding with Prof. Frisby – A series that builds a “practical” web application with React and functional programming in JavaScript.
- Hey Underscore, You're Doing It Wrong! – Underscore.js claims to be a functional programming library, but is it really?
Resources / Examples and Exercises
- functional-frontend-architecture (⭐1.4k) – A functional frontend framework. Based on Ramda + union-type-js + Flyd + Snabbdom
- cube-composer (⭐2k) – A puzzle game inspired by functional programming.
- FP Youtube Search (⭐57) – YouTube search app with ReactJS, Redux, and FP concepts
- Hardcore Functional Programming in JavaScript – Learn to apply techniques from the forefront of computer science research to solve practical problems in Javascript. Discover functional programming and see it demonstrated step-by-step with how to build an example web app using abstract interfaces like Monads, Functors, Monoids and Applicatives. (commercial)
Community / Related Lists
- Awesome FRP JS (⭐284) – A curated list of awesome (functional) reactive programming stuff in JavaScript.
Feb 29 - Mar 06, 2016
Community / Related Lists