Awesome Functional Programming 
Based on the Awesome project
What is this about?
On the last decade, functional programming has gained a new found power due to its declarative characteristics which, some would say, are very effective for parallel computing and for the whole usage of Moores Law.
This repo gathers some material on Functional Programming such as blog posts, papers, videos, tools, etc. and also aims to clarify some of the theoretical subjects behind it.
Want to contribute? Please refer to this first.
Table of Contents
Blog posts
- Personal thoughts on the current functional programming bandwagon Despite the name, this post actually clarifies some baisc concepts on Functional Programming, explains some of the History of FP and the implementation of FPs features on imperative languages and talks about all the fuss on declarative programming and why it has become so popular in the last few years.
- A Monad in Practicality - Controlling Time
- A Monad in Practicality - First Class Failures
- How to desugar Haskell Code
- Functors, Applicatives, And Monads In Pictures
- Monads Made Difficult
- Your easy guide to Monads, Applicatives, & Functors
- Async Streams in C#
- How to leverage functional programming in Kotlin to write better, cleaner code
Papers
- Tradeoffs between Unique Types and Monads
- The implementation of Functional Programming Languages - A paper by Simon Peyton Jones
- Sound and Decidable Type Inference for Functional Dependencies - Another very famous paper on Type Inference by the main creator of Haskell and GHC
- Template Meta-Programming for Haskell - Paper about generating code at compile-time in Haskell
- Why Functional Programming Matters
- From Higher-Order Logic to Haskell: There and Back Again
- Translating Haskell to Isabelle
Wikis
- nLab - A wiki-lab with articles, discussion and tools from the point of view of category theory, which is the main math behind FP.
- Haskell/Category Theory - A good overview on Category Theory applied to Haskell from Wikibooks.
- Haskell Wiki
Books
- Learn you a Haskell - Book, but you can read it online for free as well. Very beginner friendly.
- The Little Prover - Talks about a theorem prover called JBob for writing proofs in LISP.
- Isabelle/HOL - A Proof Assistant for Higher-Order Logic - A Book on implementing logical formalisms in Isabelle/HOL.
- The Little MLer - A book focused on teaching types, recursive thinking and other important subjects in Standard ML.
- Introduction to Programming using SML - Introduces you to programming design in a very mathematical way.
- How to Design Programs / Second Edition