awesome-functional-programming
Yet another resource for collecting articles, videos etc. regarding functional programming
https://github.com/xgrommx/awesome-functional-programming
Last synced: 7 days ago
JSON representation
-
Libraries
-
[Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
- **fantasy-birds** - port of the haskell package Data.Aviary.Birds. Every thing for your combinatory needs
- **scour** - Traverse objects and arrays with ease
- **monad-transformers** - Practical monad transformers for JS
- **lazy-either** - A lazy implementation of the Fantasy Land Either type
- **parallel-future** - Run Futures in parallel
- **futurize** - Turn callback-style functions or promises into futures
- **barely-functional** - tiny (2.7kb) functional programming library using native es5/6 operations
- **fantasydo** - Do-notation for javascript fantasy land
- **linq.ts** - LinQ for TypeScript
- **1-liners** - Functional tools that couldn’t be simpler
- **immutable-ext** - fantasyland extensions for immutablejs
- **optics** - This library is an implementation of profunctor optics using JS, heavily influenced by the PureScript Profunctor Lenses and Kmett's Lens libraries.
- **monady** - Composable monads for functional async flow
- **pure-random** - A purely functional random number generator
- **kewler** - Simple functional and immutable color manipulation library
- **union-type** - A small JavaScript library for defining and using union types
- **fantasy-frees** - Free monads
- **ramda-fantasy** - Fantasy-Land compatible types for easy integration with Ramda.js
- **fantasy-derivations** - Use methods on ADTs whether or not they're defined
- **fantasy-do** - Do notation for javascript
- **future-io** - A fantasy-land compliant monadic IO library for Node.js.
- **List-in-JS** - List in JS provides List like List of Haskell. List in JS implements Fantasy Land Specification. List is a Setoid, a Semigroup, a Monoid, a Functor, an Applicative Functor, Foldable, Traversable, a Chain and a Monad
- **doM.js** - "do" monad syntax for JavaScript
- **do-notation** - Do notation for Fantasy Land monad types
- **burrido** - Do-notation for JavaScript
- **monadic** - Do-notation and Monads for JavaScript
- **async-ls** - Higher order functions, compositions and common operations for asynchronous programming in LiveScript
- **florida** - Pure functional accessor factories in js
- **mandolin** - Painlessly enhance your JavaScript with monadic types
- **operajonal** - Implementation of free monads in JavaScript, based on Haskell's operational package
- **free** - Combination of a free applicative functor and free monad
- **freeky** - Free monad Collection
- **immutagen** - A library for simulating immutable generators in JavaScript
- **gentoo** - Tools for ES6 generators
- **TsMonad** - Little monad library designed for TypeScript
- **async-to-gen** - Transform async functions to generator functions with speed and simplicity
- **imlazy** - Functional, declarative, immutable and lazy as you like
- **partial.lenses** - Partial lenses is a comprehensive, high-performance optics library for JavaScript
- **ramda-lens** - Lens library built on ramda
- **lenses** - Composable kmett style lenses
- **streamjs** - Lazy Object Streaming Pipeline for JavaScript
- **chained-promise** - Functional programming tools for recurring promises
- **maryamyriameliamurphies.js** - A library of Haskell-style morphisms ported to ES2015 JavaScript using Babel
- **asyncp** - Port of the async library to use Promises
- **flow-static-land** - Implementation of common algebraic types in JavaScript + Flow
- **tiny-tuple** - Tiny Tuple library for Client or Server
- **adt.js** - Algebraic data types for Javascript
- **fantasy-states** - State control structure
- **akh-cont** - Akh continuation monad and monad transformer
- **sanctuary-type-classes** - Standard library for Fantasy Land
- **ez-dom** - Functional library to manipulate the DOM
- **purify** - Functional programming library for TypeScript focusing on ADTs
- **wu.js** - is a JavaScript library providing higher order functions (such as map, filter, and reduce) for ECMAScript 6 iterators
- **jabz** - Powerful and practical abstractions for JavaScript and TypeScript. Functors, Monads, Traversables and all that jazz
- **sanctuary** - Refuge from unsafe JavaScript
- **daggy** - Library for creating tagged constructors
- **Fluture** - A complete Fantasy Land compatible Future library
- **static-land** - Specification for common algebraic types in JavaScript based on Fantasy Land
- **lamb** - A lightweight, and docile, JavaScript (ES5) library to help embracing functional programming
- **lodash-fp** - lodash with auto-curried iteratee-first data-last methods
- **csp** - CSP/Actor/Transducer Experiments
- **f** - Implementing native versions of Haskell functions according to JavaScript ES6 standards
- **fops** - Curried, functional operators
- **funkit** - Functional toolkit for javascript
- **chunkify** - A functional API to unblock your JavaScript
- **co-functional** - co-functional is a MIT licenced library that provides several functions for use with the co library
- **redash** - Compact library for writing performant functional JavaScript
- **kneden** - Transpile ES7 async/await to vanilla ES6 Promise chains: a Babel plugin
- **monad-transformers** - Practical monad transformers for JS
- **Idealist** - Functional HTTP micro-framework
- **List-in-JS** - List in JS provides List like List of Haskell. List in JS implements Fantasy Land Specification. List is a Setoid, a Semigroup, a Monoid, a Functor, an Applicative Functor, Foldable, Traversable, a Chain and a Monad
- **monadic** - Do-notation and Monads for JavaScript
- **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
-
[Julia](https://github.com/JuliaLang/julia)
-
[Kotlin](https://github.com/JetBrains/kotlin)
- **Arrow** - Functional programming library, which adds patterns, type classes and more
- **Forge** - Functional style JSON parsing written in Kotlin
- **funktional** - Kotlin monads
- **funKTionale** - Functional constructs for Kotlin
- **Arrow** - Functional programming library, which adds patterns, type classes and more
- **kotlinslang** - A functional library for Kotlin that provides functional control structures. Inspired by javaslang
-
[Livescript](https://github.com/gkz/LiveScript)
-
[OCaml](https://ocaml.org/)
-
[PHP](https://github.com/php/php-src)
- **functional-php** - Primitives for functional programming in PHP
- **Non-standard PHP library (NSPL)** - Compact functional programming oriented code and more
- **Pinq** - PHP Integrated Query, a real LINQ library for PHP
- **YaLinqo** - Yet Another LINQ to Objects for PHP
- **ginq** - LINQ to Object inspired DSL for PHP
- **pramda** - Practical Functional Programming in PHP
- **prelude** - Functional library for PHP
-
[Python](https://www.python.org/)
- **Coconut** - Simple, elegant, Pythonic functional programming
- **fn.py** - Functional programming in Python: implementation of missing features to enjoy FP
- **funcy** - A fancy and practical functional tools
- **toolz** - A functional standard library for Python
- **f** - Functional stuff for Python
- **Coconut** - Simple, elegant, Pythonic functional programming
- **pyMonet** - High abstract library for functional programming. Contains algebraic data structures known from Haskell or Scala
-
[Racket](https://racket-lang.org/)
-
[Rust](https://github.com/rust-lang/rust)
-
[Scala](https://github.com/scala/scala)
- **scalaz** - An extension to the core Scala library for functional programming
- **cats** - Lightweight, modular, and extensible library for functional programming
- **Structures** - Functional type classes for Scala
- **rillit** - Boilerplate-free Functional Lenses for Scala 2.10
- **macroid** - A modular functional UI language for Android
-
[Swift](https://developer.apple.com/swift)
- **Swift for Windows** - is a free, open source tool that provide runtime environment for swift programming language to compile and run on Windows OS with graphical interface
- **Dollar.swift** - A functional tool-belt for Swift Language similar to Lo-Dash or Underscore.js in Javascript
- **Swiftz** - Functional programming in Swift
- **LlamaKit** - Collection of must-have functional Swift tools
- **Prelude** - Swift µframework of simple functional programming tools
- **Swiftx** - Functional data types and functions for any project
- **Concurrent** - Functional Concurrency Primitives
- **Argo** - Functional JSON parsing library for Swift
- **Interstellar** - Simple and lightweight Functional Reactive Coding in Swift for the rest of us
- **Funky** - Functional programming tools and experiments in Swift
- **Functional** - A functional programming framework for Swift
- **SINQ** - LINQ for Swift - Swift Integrated Query
- **SwiftSequence** - A μframework of extensions for SequenceType in Swift 2.0, inspired by Python's itertools, Haskell's standard library, and other things
- **Dollar.swift** - A functional tool-belt for Swift Language similar to Lo-Dash or Underscore.js in Javascript
-
-
Presentations
-
Combinators
- Awesomely descriptive JavaScript with monads
- Functional Programming from Brian Lonsdorf (awesome presentation)
- Functional Programming in JavaScript by Luis Atencio
- Functional Programming from Scott Sauyet
- FKit: Everyday Functional Programming in JavaScript
- Ramda: Practical Functional Javascript
- Functional Programming in 5 Minutes
- Introduction to Functional Programming
- Monads
- Pragmatic Functional Programming
- Category Theory: An Abstraction for Anything
- Getting Started with PureScript by Michael Ficarra
- Functional Programming Forever
- Why Haskell?
- PureScript
- Better know a language PureScript
- Functional Patterns in JavaScript
- Collections libraries in JavaScript
- Transducers - Reducing complexity with reducers
- Remove the Boilerplate
- Functional Programming. Patterns in Scala
- CodeMash: Functional Programming Basics in ES6
- Fluent Conf: Rise of Async JavaScript
- Building Functional Islands by Mark Jones
- Reactive UIs with Halogen
- Fun* JavaScript Workshop - Dr. Gleb Bahmutov PhD
- TYPESAFE SQL IN HASKELL - AN INTRODUCTION TO OPALEYE
- Playing with Graphics and Animations in Haskell by Manuel Chakravarty
- Practically workshop
- Монады для барабанщиков
- Domain Modeling in a Functional World
- Intro to Functional Programming
- Немного о функциональном программирование в JavaScript
- Map, Flatmap and Reduce are Your New Best Friends: Simpler Collections, Concurrency, and Big Data
- Functional Programming Patterns
- Category theory, Monads, and Duality in the world of (BIG) Data
- Who's More Functional: Kotlin, Groovy, Scala, or Java?
- Introduction to Functional Programming in JavaScript
- Анонимные записи в Haskell
- Functional Patterns in JavaScript
- Functional Programming in JavaScript
- ECMAScript 6 Quiz
- Functional Programming from Scott Sauyet
- Better know a language PureScript
- Functional Programming. Patterns in Scala
- ECMAScript 6 Quiz
- Introduction to Functional Programming in JavaScript
- Немного о функциональном программирование в JavaScript
- Category theory for beginners
- Анонимные записи в Haskell
- Map, Flatmap and Reduce are Your New Best Friends: Simpler Collections, Concurrency, and Big Data
- Монады для барабанщиков
- Functional Programming Patterns
- Domain Modeling in a Functional World
- Category theory, Monads, and Duality in the world of (BIG) Data
- Intro to Functional Programming
- Who's More Functional: Kotlin, Groovy, Scala, or Java?
- Functional Programming in JavaScript
- Monads
- Монады для барабанщиков
- Fun* JavaScript Workshop - Dr. Gleb Bahmutov PhD
- Functional Programming Patterns
- Domain Modeling in a Functional World
- Ramda: Practical Functional Javascript
- Category theory, Monads, and Duality in the world of (BIG) Data
- Functional Programming in 5 Minutes
- Introduction to Functional Programming
- Pragmatic Functional Programming
- Intro to Functional Programming
- Who's More Functional: Kotlin, Groovy, Scala, or Java?
- Introduction to Functional Programming in JavaScript
- Category Theory: An Abstraction for Anything
- Немного о функциональном программирование в JavaScript
- Category theory for beginners
- Functional Programming Forever
- Why Haskell?
- PureScript
- Анонимные записи в Haskell
- Collections libraries in JavaScript
-
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))
100
[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