awesome-functional-programming
Yet another resource for collecting articles, videos etc. regarding functional programming
https://github.com/eric-erki/awesome-functional-programming
Last synced: 13 days ago
JSON representation
-
Libraries
-
[Javascript](https://developer.mozilla.org/en-US/docs/Web/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
-
[Julia](https://github.com/JuliaLang/julia)
-
[Kotlin](https://github.com/JetBrains/kotlin)
- **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
- **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)
- FKit: Everyday Functional Programming in JavaScript
- Getting Started with PureScript by Michael Ficarra
- Better know a language PureScript
- 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
- TYPESAFE SQL IN HASKELL - AN INTRODUCTION TO OPALEYE
- Playing with Graphics and Animations in Haskell by Manuel Chakravarty
- Practically workshop
- Category theory for beginners
- Domain Modeling in a Functional World
- 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
-
-
Resources
-
Combinators
- Deriving the Y Combinator in 7 Easy Steps
- B, C, K, W system
- Комбинаторы — это просто!
- Комбинаторная логика как формальная система
- combinators-js
- SKI combinator calculus
- Combinators
- Fixed-point combinator
- Combinatory logic
- Collected Lambda Calculus Functions
- Combinatory Logic: Finding and Evaluating Combinators
- Maths - Combinatory Logic
- Lambda Calculus
- From Lambda calculus to Combinator Calculus
- The SKI Combinator Calculus a universal formal system
- Lambda Calculus
- Combinatory logic
- The Y Combinator (no, not that one). A crash-course on lambda calculus
- The Quantum Electrodynamics of Functional JavaScript
- Applicative Functor / SKI combinator calculus
- To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction
- Deriving the Y Combinator in 7 Easy Steps
- Collected Lambda Calculus Functions
- From Lambda calculus to Combinator Calculus
- The SKI Combinator Calculus a universal formal system
- Combinator Birds
- Combinatory Logic
-
[Elm](http://elm-lang.org)
- Awesome Haskell
- Free monads
- http://chris-taylor.github.io
- FPCasts - Your source for Functional Programing Related Podcasts
- Primers
- 24 Days of PureScript
- Category Theory for Programmers: The Preface
- https://rosettacode.org/wiki/Category:Haskell
- Corecursion
- Typeclassopedia
- Javascript Monad Transformers
- Functor
- http://fprog.ru
- Scala Tour
- An es6 js maybe monad, using generators
- Trying to apply ES6 generators to create monad comprehensions. Unfortunately it looks like this will not work with monads that contain multiple values, such as arrays
- Free monad based thread simulation and FRP constructs written in JavaScript
- A curated list of awesome functional programming stuff in js
- Brian Lonsdorf on medium
- Almost all about monads
- Notes, Thoughts, & Examples derived from reading Functional Javascript by Michael Fogus
- http://blog.codeprototype.com
- http://simplectic.com/blog
- http://www.luisatencio.net
- Lo-Fi Learning - Advanced topics from our blackboard to your screen
- gist of functional utils which written on ES6
- Category theory jargon cheat sheet
- Functional programming (page on wiki of Haskell)
- A Guide to Functional Programming Lingo for JavaScripters
- Monad
- Monad (in computer science)
- The Indexed Continuation Monad in Haskell, Scala, and C#
- A collection about Functional Reactive Programming in Swift
- What I Wish I Knew When Learning Haskell
- Введение в функциональное программирование на скале
- Monoidal Contravariant Functors and Transducers
- Unofficial a documentation of lodash-fp
- Neon - Experimental PureScript standard library
- forwardcourses about functional programming
- Monad tutorials timeline
- Functional Programming by Example
- Haskell by Example
- The official supporting materials repository for LambdaConf 2015
- Pointfree.io - convert Haskell code into pointfree Haskell code
- Code Samples Functional Programming in JavaScript, Manning 2016
- Visual programming meets Haskell
- Luna. Visual and textual functional programming language with a focus on productivity, collaboration and development ergonomics
- Community driven Elm guide for JS people
- An overview of Elm syntax and features
- Conal Elliott blog
- Simple examples to help you understand ES6
- http://functionaljavascript.blogspot.com
- http://buzzdecafe.github.io
- http://joneshf.github.io
- http://www.luisatencio.net
- http://clojurewerkz.org - A growing collection of open source Clojure libraries
- FunctionalTalks.org - Brilliant people giving brilliant talks on Functional Programming.
- Answers to the exercises from https://github.com/MostlyAdequate/mostly-adequate-guide
- functional-programming-jargon - Jargon from the functional programming world in simple terms
-
Programming Languages
Categories
Sub Categories
[Elm](http://elm-lang.org)
174
[Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
120
Combinators
116
[Monads](https://en.wikipedia.org/wiki/Monad_(functional_programming))
55
[Lenses]()
23
[Purescript](http://www.purescript.org)
22
[Go](https://github.com/golang/go)
14
[Swift](https://developer.apple.com/swift)
13
[F#](https://github.com/fsharp/fsharp)
13
[Racket](https://racket-lang.org/)
9
[Java](http://www.oracle.com/technetwork/java/index.html)
8
[PHP](https://github.com/php/php-src)
7
[Python](https://www.python.org/)
7
[C#](https://github.com/dotnet/roslyn)
7
[Kotlin](https://github.com/JetBrains/kotlin)
5
[Scala](https://github.com/scala/scala)
5
[Haskell](https://www.haskell.org)
4
[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
python
5
haskell
5
functional
5
fantasy-land
5
typescript
4
async
4
awesome
4
fp
3
functor
3
functional-languages
3
tutorial
3
awesome-list
3
immutable
3
education
3
book
3
linq
3
monoid
3
monads
3
json
2
optics
2
kotlin
2
clojure
2
library
2
purescript
2
scala
2
php
2
algebraic-data-types
2
training-materials
2
training-providers
2
generator
2
type-theory
2
elm
2
scalajs
2
curry
2
es2015
2
compiler
2
linq-to-objects
2
programming-language
2
sugar
1
polyfill
1
semigroup
1
records
1
utility-library
1
structural-equality
1
native-objects
1
unary-functions
1
predicate-functions
1