awesome-functional-programming
Yet another resource for collecting articles, videos etc. regarding functional programming
https://github.com/xgrommx/awesome-functional-programming
Last synced: 9 days ago
JSON representation
-
Awesome
-
[Elm](http://elm-lang.org)
- Awesome Scala - A community driven list of useful Scala libraries, frameworks and software
- Awesome PureScript - A curation of awesome PureScript libraries, resources and shiny things
- Awesome Elixir - A curated list of amazingly awesome Elixir and Erlang libraries, resources and shiny things
- Awesome Clojure - A curated list of awesome Clojure libraries and resources
- Awesome Haskell - A curated list of awesome Haskell frameworks, libraries and software
- Awesome Elm - A curated list of useful Elm tutorials, libraries and software. Inspired by awesome list
- Awesome F# - A curated list of awesome F# frameworks, libraries, software and resources
- Awesome Functional Python - A curated list of awesome things related to functional programming in Python
- Awesome Coq - A curated list of awesome Coq frameworks, libraries and software
-
-
Books
-
[Elm](http://elm-lang.org)
- Functional Reactive Programming
- Functional Programming in Java
- Functional Programming in C++
- Functional Programming in C#
- Functional Programming in Kotlin
- Functional Concurrency in .NET
- Elm in Action
- Functional JavaScript
- Functional Programming in JavaScript - Dan Mantyla
- Functional JavaScript: Introducing Functional Programming with Underscore.js - Michael Fogus
- A big list of books about functional programming
- PureScript by Example
- Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
- Lenses in Functional Programming
- The Weird World of Bi-Directional Programming
- Functional Programming in JavaScript
- Excerpt Funtional Programming JavaScript
- Elm tutorial book
- Purescript Pux
- Elm by Example - Grzegorz Balcerek
- Learn you a Haskell for great good! (A beginner's guide)
- Learning Haskell
- learning Scalaz
- О Haskell по-человечески
- F# for Fun and Profit eBook
- An Introduction to Elm
- Learn you an Agda
- Learn F#
- The Transparent Web
- JavaScript Allongé, the "Six" Edition
- Parallel Computing: Theory and Practice
- Haskell Tutorial and Cookbook
- Get Programming with Haskell
- Haskell in Depth
- Grokking Simplicity
- Functional Programming in Scala, Second Edition
- Functional Programming in C#, Second Edition
- Grokking Functional Programming
- Functional Programming, Simplified
- Clojure for the Brave and True
- OCaml Programming: Correct + Efficient + Beautiful
- Mostly adequate guide to FP (in javascript)
- Mostly adequate guide to FP (in javascript) - russian version
- Functional Javascript Workshop (console based tutorial)
- Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
- Excerpt Funtional Programming JavaScript
- Learning Haskell
- Programming with Refinement Types - An Introduction to LiquidHaskell
- learning Scalaz
- A book about functional programming in JavaScript
- Parallel Computing: Theory and Practice
- Розплутаний ClojureScript
- The Neophyte's Guide to Scala
- Programming with Refinement Types - An Introduction to LiquidHaskell
- Learn you a Haskell for great good! (A beginner's guide)
- Functional JavaScript: Introducing Functional Programming with Underscore.js - Michael Fogus
- The Transparent Web
- A big list of books about functional programming
- An Introduction to Elm
- Learn F#
-
-
Languages
-
[Racket](https://racket-lang.org/)
- Lean - Lean is a functional programming language that makes it easy to write correct and maintainable code.
- Pyret - A programming language designed to serve as an outstanding choice for programming education while exploring the confluence of scripting and functional programming
- Ela - A dynamic functional language
- Coq - A formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs
- Ela - A dynamic functional language
- Koka - A function-oriented language with effect inference
- Ditto - A super kawaii dependently typed language for you!
- Agda - A dependently typed functional programming language
- Pyret - A programming language designed to serve as an outstanding choice for programming education while exploring the confluence of scripting and functional programming
- F* - (pronounced F star) An ML-like functional programming language aimed at program verification
- Idris - A general purpose pure functional programming language with dependent types
-
-
Libraries
-
[C#](https://github.com/dotnet/roslyn)
- **functional.net** - Library of functions and list extensions for C#
- **language-ext** - C# functional language extensions and 'Erlang like' concurrency system
- **FuncSharp** - Functional programming in C#
- **monadsharp** - A collection of monads for C# that provide some functional programming flavor
- **csharp-probability-monad** - A probabilistic programming framework for C#
- **Ramda.NET** - Practical functional C# port from Ramda.js
- **FuncSharp** - Functional programming in C#
-
[Clojure](https://github.com/clojure/clojure)/[ClojureScript](https://github.com/clojure/clojurescript)
-
[ClojureScript](https://github.com/clojure/clojurescript)
-
[Erlang](https://www.erlang.org)
-
[F#](https://github.com/fsharp/fsharp)
- **FSharpx.Extras** - Functional programming and other utilities
- **chiron** - Functional JSON library for F#
- **hekate** - Purely Functional Graphs for F#
- **freya** - Functional-first web stack, including an HTTP finite state machine, built on top of OWIN
- **micron** - A minimalistic pure functional programming language
- **Lw** - is a general-purpose statically-typed functional language with advanced features.
- **Streams** - A lightweight F#/C# library for efficient functional-style pipelines on streams of data
- **Fable** - F# to JavaScript Compiler
- **ReactFSharp** - Proof of concept demo implementing a React like declarative UI API for F# on top of RX
- **Juniper** - FRP (Functional Reactive Programming) for the Arduino and other microcontrollers
- **FSharpPlus** - A complete and extensible base library for F#.
- **freya** - Functional-first web stack, including an HTTP finite state machine, built on top of OWIN
- **Fable** - F# to JavaScript Compiler
-
[Go](https://github.com/golang/go)
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
- **go-linq** - .NET LINQ-like query methods for Go
- **The Oden Programming Language** - Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem
-
[Haskell](https://www.haskell.org)
- **ivorylang** - is an eDSL for safe systems programming. You can think of Ivory as a safer C, embedded in Haskell
- **reflex** - Practical Functional Reactive Programming
- **ivorylang** - is an eDSL for safe systems programming. You can think of Ivory as a safer C, embedded in Haskell
- **ghcvm** - A Haskell to JVM compiler that supports GHC Haskell
- **futhark** - A data-parallel functional programming language
-
[Java](http://www.oracle.com/technetwork/java/index.html)
- **TotallyLazy** - A complete functional environment for Java
- **Frege** - is a Haskell for the JVM. It brings purely functional programing to the Java platform.
- **functionaljava** - Functional programming in Java
- **yeti** - Functional programming language for JVM
- **Jinq** - LINQ-style queries for Java 8
- **linq4j** - A port of LINQ (Language-Integrated Query) to Java
- **javaz** - Java 8 lambda experiment
- **TotallyLazy** - A complete functional environment for Java
- **Vavr** - (formerly called Javaslang) object-functional library that runs with Java 8+
-
[Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
- **functional.js** - The functional JavaScript library
- **folktalejs** - Robust, Scalable, DRY. Folktale is a suite of libraries for generic functional programming in JavaScript that allows you to write elegant modular applications with fewer bugs, and more reuse
- **fn.js** - A JavaScript library built to encourage a functional programming style & strategy
- **bilby.js** - is a serious functional programming library
- **lazy.js** - is a functional utility library for JavaScript, similar to Underscore and Lo-Dash, but with an underlying engine that supports many more use cases than those libraries, while offering comparable or superior performance in most scenarios
- **monet.js** - Monadic types library for JavaScript
- **ftoer** - A pragmatic library facilitating functional programming in javascript
- **cali** - A JavaScript utility library with a functional programming flavor
- **QIO** - Purely functional effect management library for Typescript.
- **QIO** - Purely functional effect management library for Typescript.
- **fantasy-land** - Specification for interoperability of common algebraic structures in JavaScript
- **Crocks - A collection of well known Monadic Containers for your utter enjoyment.**
- **wu.js** - is a JavaScript library providing higher order functions (such as map, filter, and reduce) for ECMAScript 6 iterators
- **pointfree-fantasy** - Point free wrappers for fantasy land
- **folktalejs** - Robust, Scalable, DRY. Folktale is a suite of libraries for generic functional programming in JavaScript that allows you to write elegant modular applications with fewer bugs, and more reuse
- **lamb** - A lightweight, and docile, JavaScript (ES5) library to help embracing functional programming
- **trine** - A utility library for modern JavaScript
- **alicates** - Small library for functional programming with ES2015+
- **creed** - Sophisticated and functionally-minded async with advanced features: coroutines, promises, ES2015 iterables, fantasy-land
- **js-csp** - Communicating sequential processes for Javascript (like Clojurescript core.async, or Go)
- **transducers-js** - A high performance Transducers implementation for JavaScript
- **transducers.js** - A small library for generalized transformation of data (inspired by Clojure's transducers)
- **underarm** - Transducers Inspired by Underscore
- **transduce** - JavaScript transducers
- **fkit** - A functional programming toolkit for JavaScript
- **contra** - Asynchronous flow control with a functional taste to it
- **neo-async** - Neo-Async is thought to be used as a drop-in replacement for Async, it almost fully covers its functionality and runs faster
- **async** - Async utilities for node and the browser
- **nimble** - A really tiny functional JavaScript and async flow-control library
- **udon** - Practical functional programming in JavaScript
- **culljs** - Functional javascript for adults - no cushions included
- **it.js** - Chainable object-oriented functional combinators
- **linq** - linq.js - LINQ for JavaScript library
- **Sugar** - A Javascript library for working with native objects
- **cat.js** - Category Theory for JavaScript
- **f** - Implementing native versions of Haskell functions according to JavaScript ES6 standards
- **este** - Dev stack and starter kit for functional and universal React web apps
- **Slack** - Lazy functional JS library
- **nux** - A Push-Based Functional Reactive UI Library for the Web
- **nodent** - Asynchronous Javascript language extensions
- **funkit** - Functional toolkit for javascript
- **funko** - Naive minimalistic functional programming library
- **fantasy-lenses** - Composable, immutable getters and setters
- **co-functional** - co-functional is a MIT licenced library that provides several functions for use with the co library
- **iterablejs** - Lazy-loading wrapper for iterable items and common functional programming operations
- **async-csp** - CSP style channels using ES7 async/await
- **conjs** - a featured fork of mori, with core.async included
- **switch-fn** - Write a functional switch statement
- **asyncawait** - Callback heaven for Node.js with async/await
- **asyncbox** - A collection of ES7 async/await utilities
- **medium** - CSP-style channel library using ES7 async/await keywords
- **prelude** - Base functional programming utils for mostjs packages
-
Programming Languages
Categories
Sub Categories
[Elm](http://elm-lang.org)
271
Combinators
187
[Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
125
[Monads](https://en.wikipedia.org/wiki/Monad_(functional_programming))
99
[Purescript](http://www.purescript.org)
41
[Go](https://github.com/golang/go)
29
[Lenses]()
25
[Swift](https://developer.apple.com/swift)
14
[F#](https://github.com/fsharp/fsharp)
13
[Racket](https://racket-lang.org/)
12
[Java](http://www.oracle.com/technetwork/java/index.html)
9
[C#](https://github.com/dotnet/roslyn)
7
[PHP](https://github.com/php/php-src)
7
[Python](https://www.python.org/)
7
[Kotlin](https://github.com/JetBrains/kotlin)
6
[Haskell](https://www.haskell.org)
5
[Scala](https://github.com/scala/scala)
5
[Julia](https://github.com/JuliaLang/julia)
4
[Clojure](https://github.com/clojure/clojure)/[ClojureScript](https://github.com/clojure/clojurescript)
3
[Livescript](https://github.com/gkz/LiveScript)
2
[OCaml](https://ocaml.org/)
1
[Erlang](https://www.erlang.org)
1
[Rust](https://github.com/rust-lang/rust)
1
[ClojureScript](https://github.com/clojure/clojurescript)
1
Keywords
functional-programming
23
javascript
18
monad
8
fantasy-land
5
functional
5
haskell
5
python
5
typescript
4
awesome-list
4
async
4
awesome
4
immutable
3
functional-languages
3
functor
3
monoid
3
monads
3
fp
3
tutorial
3
clojure
3
education
3
book
3
linq
3
json
2
kotlin
2
algebraic-data-types
2
optics
2
library
2
scalajs
2
php
2
linq-to-objects
2
programming-language
2
generator
2
training-materials
2
training-providers
2
elm
2
type-theory
2
curry
2
purescript
2
es2015
2
scala
2
compiler
2
native-objects
1
polyfill
1
sugar
1
records
1
codec
1
decode
1
utility-library
1
structural-equality
1
semigroup
1