Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-functional-programming
Yet another resource for collecting articles, videos etc. regarding functional programming
https://github.com/xgrommx/awesome-functional-programming
Last synced: about 6 hours ago
JSON representation
-
Libraries
-
[Kotlin](https://github.com/JetBrains/kotlin)
-
[C#](https://github.com/dotnet/roslyn)
-
[Swift](https://developer.apple.com/swift)
- **Dollar.swift** - A functional tool-belt for Swift Language similar to Lo-Dash or Underscore.js in Javascript
- **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
- **Swiftx** - Functional data types and functions for any project
- **Concurrent** - Functional Concurrency Primitives
- **Prelude** - Swift µframework of simple functional programming tools
- **Swiftx** - Functional data types and functions for any project
- **Concurrent** - Functional Concurrency Primitives
- **SINQ** - LINQ for Swift - Swift Integrated Query
- **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
- **Funky** - Functional programming tools and experiments in Swift
- **Prelude** - Swift µframework of simple functional programming tools
-
[Python](https://www.python.org/)
-
[Julia](https://github.com/JuliaLang/julia)
-
[Go](https://github.com/golang/go)
- **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
- **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
-
[Haskell](https://www.haskell.org)
- **futhark** - A data-parallel functional programming language
- **reflex** - Practical Functional Reactive Programming
- **ghcvm** - A Haskell to JVM compiler that supports GHC Haskell
- **ghcvm** - A Haskell to JVM compiler that supports GHC Haskell
- **ivorylang** - is an eDSL for safe systems programming. You can think of Ivory as a safer C, embedded in Haskell
- **ivorylang** - is an eDSL for safe systems programming. You can think of Ivory as a safer C, embedded in Haskell
-
[PHP](https://github.com/php/php-src)
-
[Rust](https://github.com/rust-lang/rust)
-
[Erlang](https://www.erlang.org)
-
[OCaml](https://ocaml.org/)
-
[Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
- **Lodash** - A JavaScript utility library delivering consistency, modularity, performance, & extras
- **Ramda** - A practical functional library for Javascript programmers
- **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
- **sanctuary** - Refuge from unsafe JavaScript
- **ftoer** - A pragmatic library facilitating functional programming in javascript
- **daggy** - Library for creating tagged constructors
- **linq.ts** - LinQ for TypeScript
- **Fluture** - A complete Fantasy Land compatible Future library
- **static-land** - Specification for common algebraic types in JavaScript based on Fantasy Land
- **cali** - A JavaScript utility library with a functional programming flavor
- **TsMonad** - Little monad library designed for TypeScript
- **QIO** - Purely functional effect management library for Typescript.
- **QIO** - Purely functional effect management library for Typescript.
-
[Livescript](https://github.com/gkz/LiveScript)
-
[Java](http://www.oracle.com/technetwork/java/index.html)
-
[Scala](https://github.com/scala/scala)
-
-
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
- Eta - A powerful language for building scalable systems on the JVM
- Ditto - A super kawaii dependently typed language for you!
- Idris - A general purpose pure functional programming language with dependent types
- Agda - A dependently typed functional programming 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
- 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
- Eta - A powerful language for building scalable systems on the JVM
- Ditto - A super kawaii dependently typed language for you!
- 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
-
-
Tutorials and Articles
-
- Fold
- Functional programming on frontend with React & ClojureScript
- Practical Functional Javascript with Ramda
- Streaming Logs with Transducers and Ramda
- The power of Immutability and React
- Tacit Ramda
- Composing Functions in JavaScript
- Partial Application in JavaScript
- Forcing Function Arity in JavaScript
- Wrapping JavaScript Functions
- Partial Application in JavaScript
- Functional JavaScript
- Compiling to lambda-calculus: Turtles all the way down
- Point-free programming style in F#
- Lazy, composable, and modular JavaScript
- Partially Applied Functions In JavaScript
- Neural Networks, Types, and Functional Programming
- Currying in JavaScript
- Why Curry Helps
- Factorial and Fibonacci in Kotlin
- Functional programming with Javascript
- Thinking in Ramda - Blog series
- Part 1: An Intro to Functional Programming Concepts in JavaScript
- Part 2: An Intro to Functional Programming Concepts in JavaScript
- Part 3: An Intro to Functional Programming Concepts in JavaScript
- Dipping into wu.js: autoCurry
- Haskell in ES6: Part 1
- Haskell in ES6: Part 2
- Haskell in ES6: Project Euler 1-5
- Don’t Be Scared Of Functional Programming
- Short cut fusion
- My favorite functional adaptors
- Functional pipeline
- Partial argument binding with heroin
- Too much curry
- Lodash to Ramda example
- Functional JavaScript interview question
- Configurable function pattern
- Combine promises with Maybe functors
- Test if a function is pure
- Functor + Applicative = Applier
- Point-free programming is not pointless
- Immutable JavaScript example
- Separate work from control flow using functional programming
- OO vs FP console log example
- Essence of functional programming
- Adapted point-free callbacks
- Counting predicates
- Run N promises in parallel
- Too much point-free
- Factorial using promises
- Reduce reigns supreme
- Binding vs partial application
- Passing multiple arguments in promises
- What is the difference between streams and functional reactive programming?
- Remove boilerplate from promise chains
- Use JavaScript functor today
- Heavy lifting
- Deep picking
- Partial application for options object
- Unapply attack
- Return a promise for cleaner API
- Imperative to compose example
- Variable assignment shortcut
- Favoring Curry
- The Philosophy of Ramda
- Ranging Near and Far
- Iffy Literals
- Why Ramda?
- Say "Hello" to Lo-Dash
- Functional JavaScript using Lo-Dash, an underscore.js alternative
- Currying in JavaScript
- Recursion in JavaScript
- ECMAScript 6 and Array Comprehension
- Implicit Function Chaining in Lodash
- Lodash and ECMAScript 2015
- Applicative Programming In JavaScript With lodash.js
- Better Support for Functional Programming in Angular 2
- 16 Months of Functional Programming
- Functional UI and Components as Higher Order Functions
- Functional programming with Ramda
- A practical introduction to functional programming
- Functional programming in R language
- Category Theory in JavaScript
- Understanding Continuations
- Tasks, microtasks, queues and schedules
- Polyfilling generators
- Fixed-point combinators in JavaScript: Memoizing recursive functions
- Asynchronous programming and continuation-passing style in JavaScript
- By example: Continuation-passing style in JavaScript
- The Y Combinator (Slight Return)
- Leaking Space - Eliminating memory hogs
- Breaking down FRP
- What are some limitations/disadvantages of functional programming?
- Fun with promises in JavaScript
- Getting clever with lambda calculus
- Servant, Type Families, and Type-level Everything A look at advanced GHC features used in Servant
- Haskell-Style Fibonacci in Python
- Polyglot Twitter Bot, Part 1: Node.js
- Polyglot Twitter Bot, Part 2: Node.js + AWS Lambda
- Polyglot Twitter Bot, Part 3: Python 2.7 + AWS Lambda
- Functional programming with Ramda.js
- The Little Idea of Functional Programming
- What is a functor?
- What Is Functional Programming?
- Which Programming Languages Are Functional?
- An Introduction to Functional Programming in JavaScript
- Input and Output
- Function Application and Definition
- Types & Kinds
- Effectful Haskell: Reader, Transformers, Typeclasses
- asynquence: More Than Just Promises (Part 2)
- Going Async With ES6 Generators
- Getting Concurrent With ES6 Generators
- Currying versus partial application (with JavaScript code)
- Flatmap explained
- Applicatives are generalized functors
- Introduction to Category Theory in Scala
- Understanding Transducers
- Understanding Transducers in JavaScript
- Visualizing Concurrency in Go
- Lazy Iterables in JavaScript
- Difference between a Promise and a Task
- Switching from immutable.js to seamless-immutable
- A Gentle Introduction to Functional JavaScript: Part 1
- A Gentle Introduction to Functional JavaScript: Part 2
- A Gentle Introduction to Functional JavaScript: Part 3
- A Gentle Introduction to Functional JavaScript: Part 4
- From mathematics to map-reduce
- Continuations
- Elmish: Functional Programming in Javascript
- Functional Programming for JavaScript People
- Coroutine Event Loops in Javascript
- How Do I Learn Functional Programming In Javascript? - Linkpost
- Debugging Functional
- Why Functional Programming Matters
- Why using `_.chain` is a mistake
- More points for lazy evaluation
- Trampolines in JavaScript
- Where combinator names come from
- Category Theory for Promises/A+
- Everything Reduced: Transducers in Javascript
- Javascript Transducers 2: Stateful & Gateful
- Creating an ES6ish Compose in Javascript
- More Functional Javascript: Reducing Promises, Ramda.js, & Arrow functions again
- Functional Programming is for Dummies
- Functional Programming Principles in Scala
- Introduction to Immutable.js and Functional Programming Concepts
- Functional Programming in JavaScript - The Functional Paradigm in a Familiar Language
- Using Lodash as a Collection of Micro-Libraries
- See How Easily You Can Create a Promise
- Achieving point-free JavaScript with R.converge / _.over
- Introduction to Functional JavaScript
- Functions
- Higher Order Functions
- Recursion
- 3. More Functional Swift
- 2. Functional Swift
- Swift closures and functions
- Debouncing and Throttling Explained Through Examples
- How do Promises Work?
- Javascript generators and functional reactive programming
- No promises: asynchronous JavaScript with only generators
- Functional Mixins in ECMAScript 2015
- CSP and transducers in JavaScript
- ES6 generators in depth
- The allure of Scala.js
- 6 Reasons Why You Should Write Functional Code
- The Perfect API
- (Basic) Lazy Evaluation and Memoization in JavaScript
- Divide and Conquer with Algebraic Structures
- Async and await
- Applicative functors: definition and syntax
- Proofs of functor laws in Haskell
- The functor design pattern
- A 𝝺-CALCULUS INTERPRETER - in less than 200 lines of JavaScript
- Tree traversal in CoffeeScript
- Monoidal Contravariant Functors are actually useful!
- Infinite collections with ES6 generators
- Improving your functional CoffeeScript and JavaScript
- Comparing Javascript generators vs Clojurescript lazy-seq by solving a Fibonnaci problem
- Grasping Haskell: functors, applicatives and monads (part 1)
- Grasping Haskell: functors, applicatives and monads (part 2)
- Functor, Foldable, and Traversable Over Binary Tree
- Functional Components with React stateless functions and Ramda
- Support for deriving Functor, Foldable, and Traversable instances
- Fold (higher-order function)
- Making a Haskell (Scotty) web app and putting it on Heroku
- Promises + FP = Beautiful Streams
- Composability: from Callbacks to Categories in ES6
- Understanding F-Algebras
- Smarter validation
- The Algebra of Algebraic Data Types, Part 1
- The Algebra of Algebraic Data Types, Part 2
- The Algebra of Algebraic Data Types, Part 3
- Async in Purescript is fun and easy
- Design Patterns in Haskell
- So You Want to be a Functional Programmer Series by Charles Scalfani
- Haskell Progressive Example - An OpenGL 3D extension of the Mandelbrot set
- Folds and Infinite Lists
- list-transformer - A beginner-friendly ListT
- Sharing, Space Leaks, and Conduit and friends
- Functors are Containers
- Tuples in JavaScript
- Making juice with reduce/foldl
- Getting audio from Youtube channels in the easiest way possible using Haskell
- From Callback to Future -> Functor -> Monad
- Slaying a UI Antipattern in Fantasyland
- Form Validation As A Higher Order Component Pt.1
- Form Validation As A Higher Order Component Pt.2
- Using JavaScript to Learn Haskell
- FFI with Haskell and Rust
- A Taste of Haskell
- BEAUTIFUL FOLDS IN SCALA
- Functional Programming In JS — With Practical Examples (Part 1)
- Immutable.js: The True Joy of JavaScript
- Mutual Recursion in Final Encoding
- Semigroups
- Using F# on both the frontend and the backend
- Stack safe Function composition
- The versatility of Array methods
- Functional Programming in JavaScript
- Abstracting Computations with Type Classes
- Functional Programming should be your #1 priority for 2015 — OOP cannot save us from the Cloud Monster anymore.
- Swift Guide to Map Filter Reduce
- Tuples in JavaScript
- Abstracting Computations with Type Classes
- Functional Programming should be your #1 priority for 2015 — OOP cannot save us from the Cloud Monster anymore.
- Swift closures and functions
- Partial Application in JavaScript
- How Do I Learn Functional Programming In Javascript? - Linkpost
- How to Speed Up Lo-Dash ×100? Introducing Lazy Evaluation
- Элементы функциональных языков
- asynquence: The Promises You Don’t Know Yet (Part 1)
- Foldable and Traversable
- Functional programming with Javascript
- Immutable.js: The True Joy of JavaScript
- The Philosophy of Ramda
-
[Lenses]()
- Lenses In Pictures
- Lenses and Virtual DOM Support Open Closed
- JavaScript through the Lenses of Functional Programming
- How functional programming lenses work
- Basic Lensing
- Lenses with Immutable.js
- lens over tea #1: lenses 101, traversals 101, and some implementation details
- Functional Lenses, How Do They Work
- An Introduction Into Lenses In JavaScript Functional Getter/Setter
- Pointwise Lenses
- Haskell Lenses Notes
- Isomorphism lenses
- An Intro to Lens With No Theory
- Lens you an applicative for great haskell?
- I got lenses in my Functors
- A Little Lens Starter Tutorial
- Introduction to optics: lenses and prisms
- Lens Tutorial - Introduction (part 1)
- Lens Tutorial - Stab & Traversal (Part 2)
- Использование линз на реальных примерах
- Линзы: Real World
-
[Monads](https://en.wikipedia.org/wiki/Monad_(functional_programming))
- Monads: Your App as a Function, Part 1
- Monads: Your App as a Function, Part 2
- The Marvels of Monads
- A Fistful of Monads
- Category Theory via C# (22) More Monad: Continuation Monad
- The Mother of all Monads
- Understanding Monads With JavaScript
- Promises are the monad of asynchronous programming
- A Monad in Practicality: First-Class Failures
- A Monad in Practicality: Controlling Time
- Monads in JavaScript
- Mindfuck: The Reverse State Monad
- Comonads, Monoids and Trees
- The Delimited Continuation Monad in Javascript
- Free Monads Are Simple
- Effectful Haskell: IO, Monads, Functors
- Functors, Applicative Functors, and Monads aren't that scary
- Functors, Monads, Applicatives – can be so simple
- Practical Intro to Monads in JavaScript
- The Indexed State Monad in Haskell, Scala, and C#
- Who in Their Right Mind Would Use Monads in Clojure?
- Monads in C++
- Monads in plain JavaScript
- Practical Intro to Monads in JavaScript: Either
- Practical Intro to Monads in JavaScript: Validation
- Practical Intro to Monads in JavaScript
- Monads, promises, arrays in Javascript
- Monad syntax for JavaScript
- Translation from Haskell to JavaScript of selected portions of the best introduction to monads I’ve ever read
- Monads
- Monads - function composition on steroids
- Rx for Haskell - My First Monad
- Monads for Dummies
- Week 3 - Introduction to Monads in JavaScript
- Аналоги монад Haskell
- Functors, Applicatives, and Monads in Plain English
- what does “lifting” mean?
- Free and Freer Monads: Putting Monads Back into Closet
- Akh - Monad Transformers for Javascript
- Decision Trees Are Free Monads Over the Reader Functor
- Собираемся с духом и перестаем бояться монад
- Ru/IO Inside
- Foldable.mapM_, Maybe, and recursive functions
- Of Algebirds, Monoids, Monads, and Other Bestiary for Large-Scale Data Analytics
- Comonads as Spaces
- MonadFix
- Monads - Array, Promise and Maybe monads. Plus Docker is a functor
- The Marvellously Mysterious JavaScript Maybe Monad
- The midnight Monad, a journey to enlightenment
- Monads in Haskell: ((->) r)
- Monoids, Functors, Applicatives, and Monads: 10 Main Ideas
- Kleisli Functors
- The Dead Simple, No Chit Chat, Zero-Analogy Haskell Monad Tutorial
- Monads Demystified
- Understanding Monads
- Functors, Applicatives, And Monads In Pictures
- Monads as Practical Functionality Providers
- Monads as Practical Functionality Providers
- Let’s Make a Monad
- Let’s Put jQuery in a Monad
- A Gentle Intro to Monads … Maybe?
- Монады в Javascript
- Утилиты работы с монадами
-
[Elm](http://elm-lang.org)
- Developing Games In Elm - Signals
- Signals in Elm
- Elm by Example: Soup to Nuts - Part 1
- An Opening Example of Elm: building HTML by parsing parameters
- Real World Elm - Part 2 - Form Validation
- Real World Elm - Part 1
- Deconstructing Your First Elm App
- Introduction to FRP in Elm
- Tasks and Effects in Elm
- Elm Native UI: Writing a React Native app in Elm
- Building a Live-Validated Signup Form in Elm
- Data Structures in Elm
- Walkthrough: Introducing Elm to a JS Web App
- Static site generation in Elm
- Архитектура приложения в Elm
- Начало проекта на Elm
- Optimistic UI and Reactive Programming with Elm
- Understanding Signal.forwardTo
- Learning FP the hard way: Experiences on the Elm language
- Architecture in Elm
- Switching from imperative to functional programming with games in Elm
- How Elm made our work better
- Elm for the Frontend, Right Now
- Introduction to ML in Elm
- Making a scroll table with Elm
- A simple introduction to using Elm ports
- How I wrote a hybrid Elm/Javascript Node.js application
- Getting Started with Elm
- Understanding Elm: Signals, Mailboxes, Addresses, and Actions
- Using Mailboxes in Elm
- Learn X in Y minutes - Where X=Elm
- A Concise Introduction to Elm
- Structured TodoMVC example with Elm
- 10 reasons why you should give Elm a try
- Why Elm is Going to Change the World
- Building A React/Redux/Elm Bridge
- Elm for the Frontend, Right Now (Updated for Elm 0.18)
- Learn X in Y minutes - Where X=Elm
-
[Purescript](http://www.purescript.org)
- Frontend Functional Programming with PureScript and Elm
- Writing PureScript Bindings for a jQuery Plugin
- PureScript on Android
- Rendering a Tic-Tac-Toe board with purescript-react
- Playing Tic-Tac-Toe using purescript-signal
- Fighting node callback hell with PureScript
- Approximating PI With PureScript
- Learn X in Y minutes - Where X=purescript
- PureScript for the Haskeller Where to get started in PureScript for the Haskell programmer
- Polyglot Twitter Bot, Part 4: PureScript
- WebApps with PureScript and RactiveJS
- Managing Application State with PureScript & Redux
- PureScript with Leaflet Experiments
- Purescript will make you purr like a kitten
- PureScript + React + Electron
- Getting started in PureScript (Part 1)
- Getting Started with Purescript for Web Development
- PureScript for Front End Developers
- A Real-World PureScript FE Build Setup
- Making a simple node program with Purescript
- Parsing complex foreign objects in PureScript
- Writing a simple Telegram chat bot in Purescript
- Making a Weather Telegram bot in Purescript
- Row span with PureScript pux and JavaScript redux
- Make the Leap from JavaScript to PureScript
- Building Apps with PureScript and React
- PureScript — An Intro for JavaScript Hackers
-
-
Awesome
-
[Elm](http://elm-lang.org)
- Awesome Elm - A curated list of useful Elm tutorials, libraries and software. Inspired by awesome list
- 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
-
-
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
- The Neophyte's Guide to Scala
- Elm by Example - Grzegorz Balcerek
- Learn you a Haskell for great good! (A beginner's guide)
- Learning Haskell
- learning Scalaz
- Learn you some Erlang for great good!
- F# for Fun and Profit eBook
- An Introduction to Elm
- Learn you an Agda
- Learn F#
- The Transparent Web
- Parallel Computing: Theory and Practice
- Haskell Tutorial and Cookbook
- Get Programming with Haskell
- Haskell in Depth
- 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
- О Haskell по-человечески
- JavaScript Allongé, the "Six" Edition
- Grokking Simplicity
-
-
Resources
-
[Elm](http://elm-lang.org)
- Patterns in Functional Programming
- What I Wish I Knew When Learning Haskell
- Monoidal Contravariant Functors and Transducers
- Unofficial a documentation of lodash-fp
- Scala Tour
- ML Dialects and Haskell: SML, OCaml, F#, Haskell
- Haskell for OCaml programmers
- Free monads
- http://chris-taylor.github.io
- FPCasts - Your source for Functional Programing Related Podcasts
- Primers
- Railway Oriented Programming
- Материалы курсов по Clojure, бесплатно и онлайн
- 24 Days of PureScript
- Category Theory for Programmers: The Preface
- The Glasgow Haskell Compiler. Simon Marlow and Simon Peyton-Jones
- diagrams is a powerful, flexible, declarative domain-specific language for creating vector graphics, using the Haskell programming language.
- 24 Days of GHC Extensions
- https://rosettacode.org/wiki/Category:Haskell
- Corecursion
- Pointfree.io - convert Haskell code into pointfree Haskell code
- Typeclassopedia
- Philip Wadler's home page
- Javascript Monad Transformers
- Functor
- http://fprog.ru
- 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
- Luna. Visual and textual functional programming language with a focus on productivity, collaboration and development ergonomics
- A curated list of awesome functional programming stuff in js
- Conal Elliott blog
- Brian Lonsdorf on medium
- Elm weekly
- Almost all about monads
- Notes, Thoughts, & Examples derived from reading Functional Javascript by Michael Fogus
- Functorial Blog - A blog about functional programming
- http://functionaljavascript.blogspot.com
- http://buzzdecafe.github.io
- http://blog.codeprototype.com
- http://simplectic.com/blog
- http://joneshf.github.io
- http://www.luisatencio.net
- http://bartoszmilewski.com
- http://rebcabin.github.io
- https://juxt.pro/radar.html - The 2016 JUXT Clojure Technology Radar
- http://clojurewerkz.org - A growing collection of open source Clojure libraries
- http://www.parsonsmatt.org - Elm, Haskell, Purescript
- Lo-Fi Learning - Advanced topics from our blackboard to your screen
- FunctionalTalks.org - Brilliant people giving brilliant talks on Functional Programming.
- gist of functional utils which written on ES6
- Introduction to Functional Programming (course from edx.org)
- Category theory jargon cheat sheet
- Contravariance is the Dual of Covariance
- Code, exercises, answers, and hints to go along with the book "Functional Programming in Scala"
- Functional programming (page on wiki of Haskell)
- Category Theory Presentation
- A Guide to Functional Programming Lingo for JavaScripters
- Cheat sheet for Monads in Haskell
- Monad
- Monad (in computer science)
- The Indexed Continuation Monad in Haskell, Scala, and C#
- Informatics 1: Functional Programming
- Category Theory for Programmers: The Preface
- Haskell for Maths
- Y combinator
- A collection about Functional Reactive Programming in Swift
- Coeffects: Context-aware programming languages
- Neon - Experimental PureScript standard library
- forwardcourses about functional programming
- Monad tutorials timeline
- Haskell MOOC
- A Functional Introduction To Computer Science (Part I)
- A Functional Introduction To Computer Science (Part II)
- http://blog.jakubarnold.cz
- Functional Programming in Javascript (online exercises)
- Введение в функциональное программирование на скале
- Awesome Haskell
- FunctionalTalks.org - Brilliant people giving brilliant talks on Functional Programming.
-
Combinators
- To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction
- Combinator Birds
- 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
- 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
- Комбинаторы — это просто!
- Комбинаторная логика как формальная система
-
-
Presentations
-
Combinators
- Awesomely descriptive JavaScript with monads
- Functional Programming from Brian Lonsdorf (awesome presentation)
- 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
- 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
- Functional Programming in JavaScript by Luis Atencio
- Intro to Functional Programming
- Немного о функциональном программирование в JavaScript
- Fluent Conf: Rise of Async JavaScript
- Монады для барабанщиков
- Domain Modeling in a Functional World
- 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
- Map, Flatmap and Reduce are Your New Best Friends: Simpler Collections, Concurrency, and Big Data
-
-
Videos
-
Combinators
- Jason Ganetsky on Making a Fast Curry: Push/Enter vs. Eval/Apply for Higher-order Languages
- Erik Meijer: Functional Programming
- Lambda Days 2015 - Kuba Waliński - Fun with Functional JavaScript
- Functional Programming with Kotlin
- Category theory for JavaScript programmers
- "Everything Old is New Again: Quoted Domain Specific Languages" by Philip Wadler
- Classroom Coding with Prof. Frisby
- FP-Syd - PureScript: An Overview for Haskellers by Tim Docker (Jul 2015)
- Intro to PureScript -- Utah Haskell Meetup
- Haskell Programming Tutorial
- Monad a day 1: Reader
- Monad a day 2: Future
- Monad a day 3: State
- Frontend Masters Workshop finish up
- Professor Frisby Introduces Composable Functional JavaScript
- A Million Ways to Fold in JS
- Coyoneda in Javascript
- Freer Monad (We define Maybe and IO in the freer monad)
- Free(er) Monads in JS pt 2 (Defining an interpreter for multiple natural transformations)
- What is pure functional programming, and how it can improve our application testing? by Luca Molteni
- Start Using Elm to Build Web Applications
- How to Create Tetris in Elm
- Lambda Jam 2014 - Eric Meijer - The Lost Art of Denotational Semantics
- SKI School: The Combinator Calculus Demystified
- Erik Meijer - Functional Programming From First Principles
- Russian videos about clojure and clojurescript
- Parallel and Concurrent Haskell
- Functional programming patterns for the non-mathematician (cut)
- Brian Beckman: Don't fear the Monad
- Brian Beckman: The Zen of Stateless State - The State Monad
- Monads and Gonads
- Haskell Tutorial
- YOW! Lambda Jam 2016 Conor McBride - What are Types for, or are they only Against?
- Phil Freeman - Fun with Profunctors
- Monads, Monoids and Composition w/ Functional JavaScript
- «PureScript livecoding» by Dmirti Bushenko
- Learning Functional Programming with JavaScript by Anjana Vakil at JSUnconf 2016
- Elm in Purescript
- Functional JS - Lenses - JavaScript
- "Point-Free or Die: Tacit Programming in Haskell and Beyond" by Amar Shah
- The fuel for the Functional Programming engine - Michal Plachta
- The fuel for the Functional Programming engine - Michal Plachta
- Lenses Quick n’ Dirty
- Scott Wlaschin - Railway Oriented Programming — error handling in functional languages
- Pure Functional Database Programming with Fixpoint Types—Rob Norris
-
-
Youtube channels
Categories
Sub Categories
[Elm](http://elm-lang.org)
165
Combinators
117
[Monads](https://en.wikipedia.org/wiki/Monad_(functional_programming))
63
[Purescript](http://www.purescript.org)
27
[Go](https://github.com/golang/go)
26
[Lenses]()
21
[Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
18
[Swift](https://developer.apple.com/swift)
17
[Racket](https://racket-lang.org/)
15
[Haskell](https://www.haskell.org)
6
[Python](https://www.python.org/)
4
[C#](https://github.com/dotnet/roslyn)
3
[Livescript](https://github.com/gkz/LiveScript)
3
[OCaml](https://ocaml.org/)
2
[PHP](https://github.com/php/php-src)
2
[Scala](https://github.com/scala/scala)
1
[Kotlin](https://github.com/JetBrains/kotlin)
1
[Julia](https://github.com/JuliaLang/julia)
1
[Erlang](https://www.erlang.org)
1
[Rust](https://github.com/rust-lang/rust)
1
[Java](http://www.oracle.com/technetwork/java/index.html)
1