awesome-functional-programming

Functional Programming Hub

A curated collection of resources and materials on functional programming concepts, including blog posts, papers, wikis, books, communities, and tools.

alien A curated list of functional programming resources such as blog posts, communities, discussion topics, wikis and more.

GitHub

967 stars
39 watching
64 forks
last commit: over 2 years ago
Linked from 4 awesome lists


Table of Contents / Blog posts

Personal thoughts on the current functional programming bandwagonDespite 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

Table of Contents / Papers

Tradeoffs between Unique Types and Monads
The implementation of Functional Programming LanguagesA paper by Simon Peyton Jones
Sound and Decidable Type Inference for Functional DependenciesAnother very famous paper on Type Inference by the main creator of Haskell and GHC
Template Meta-Programming for HaskellPaper 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

Table of Contents / Wikis

nLabA wiki-lab with articles, discussion and tools from the point of view of category theory, which is the main math behind FP
Haskell/Category TheoryA good overview on Category Theory applied to Haskell from Wikibooks
Haskell Wiki

Table of Contents / Books

Learn you a HaskellBook, but you can read it online for free as well. Very beginner friendly
The Little ProverTalks about a theorem prover called JBob for writing proofs in LISP
Isabelle/HOL - A Proof Assistant for Higher-Order LogicA Book on implementing logical formalisms in Isabelle/HOL
The Little MLerA book focused on teaching types, recursive thinking and other important subjects in Standard ML
Introduction to Programming using SMLIntroduces you to programming design in a very mathematical way
How to Design Programs/
Introduction to Functional Programming
Haskell in Depththe perfect second book on Haskell which dives into examples and application scenarios designed to teach how Haskell works and how to apply it correctly
Grokking Simplicity: Taming complex software with functional thinkingTeaches functional programming from first principles using real-world scenarios
Functional Programming in Scala, Second EditionInternational bestseller revised with new exercises, annotations, and full coverage of Scala 3
Functional Programming in C#, Second EditionReal world examples and practical techniques for functional programming in C#
Grokking Functional ProgrammingIntroduction to functional programming
Functional Programming in KotlinMaster techniques and concepts of functional programming to deliver safer, simpler, and more effective Kotlin code
Functional Design and ArchitectureDesign patterns and architectures for building production quality applications using functional programming, with examples in Haskell and other FP languages
Haskell BookcampIn this book, you’ll get practical experience writing Haskell code and applying functional programming to actual development challenges
Mastering Functional ProgrammingIf you are from an imperative and OOP background, this book will guide you through the world of functional programming, irrespective of which programming language you use
Jax in ActionA book about The JAX numerical computing library
Learn PowerShell Scritping in a Month of LunchesAutomate complex tasks and processes with PowerShell scripts
F# in ActionBook about practical F# development skills needed to create professional applications
Elixir in Action, Third EditionFully updated to Elixir 1.14, this authoritative bestseller reveals how Elixir tackles problems of scalability, fault tolerance, and high availability

Table of Contents / Communities

Lambda the UltimateCommunity focused on discussing researches, papers and hot topic on academia. Very high tech discussion level
FP CompleteCommunity focused on helping companies and students on learning and implementing Functional Programming in Haskell. Hosters of one of the most famous Haskell learning centers:
HaskellersThe meeting point for Haskell Programmers
ElixirLangMoscowRussian Elixir community

Table of Contents / Discussions (Quora, Stack Overflow, Reddit, etc)

Why dont more programmers use Haskell
Hidden complexities of tail-call/tail-recursion optimization

Table of Contents / Videos

Dont fear the MonadExplanation on one of the most obscure topics of Functional Programming by Microsoft researcher Brian Beckman
Haskell is uselessSimon Peyton Jones being just too humble about his creation
Brian Beckman: The Zen of Stateless State
Erik Meijer: Functional Programming
Scala Monads: Declutter Your Code With Monadic Design
Philip Wadler and Erik Meijer: On Programming Language Theory and Practice
Kotlin for Android & Java DevelopersLiveVideo course about Kotlin: functional programming, object orientation and building an Android app in Kotlin
Do we really need OOD and FDD?Functional Declarative Design (FDD) opposed to Object-Oriented Design (OOD
Functional Programming with TypeScriptDiscover functional programming with Typescript and create a library like fp-ts alongside Sahand Javid in this beginner-friendly YouTube playlist

Table of Contents / Lectures

C9 Lectures: Dr. Erik Meijer - Functional Programming FundamentalsSeries of Lectures from one of the creators of Haskell
Adventure with types in Haskell - Simon Peyton JonesLectures about Haskells strong Type System by Simon Peyton Jones
The Algebra of Algebraic Data TypesVery good explanation on the relationship between math and Algebraic Data Types, which is the Type System of some very common FP Languages such as Haskell and ML

Table of Contents / Tools

Isabelle/HOLGeneric proof assistant based on Higher Order Logic

Table of Contents / Repos

Idris Koans178over 8 years agoProject for teaching Idris. A General Purpose Functional Programming with Dependent Types
Functional Javascript Workshop2,054almost 6 years agoA functional Javascript workshop
J-Bob420over 2 years agoThe proof assistant from the book
Haskell Must Watch1,128almost 9 years agoA list of videos, talks and courses on Haskell
Intro SMLCode, corrections and info on the book:
Functional Programming In JavaScript306almost 6 years agoList of functional programming resources in JavaScript
Functional Programming Jargon18,616almost 3 years agoProject for providing a glossary for FP, and make learning FP easier
Bow647almost 4 years agoCompanion library for Typed Functional Programming in Swift
Parsing With Haskell Parser Combinators93almost 7 years agoA step-by-step guide to parsing using Haskell parser combinators
Functional Programming Learning PathA Learning Path for Functional Programming

Table of Contents / People

Simon Peyton JonesOne of the creators of the Haskell Language and the Glasgow Haskell Compiler. Microsoft Researcher
Philip WadlerProfessor of Theoretical Computer Science at the University of Edinburgh, author of the famous paper Propositions as Types. One of the main people behind Java Generics Types
Matthias FelleisenAuthor of many books such as How to Design Programs, and The Little Schemer
Erik MeijerFormer software architect for Microsoft, Functional Programming researcher, gives lectures on FP, Software Design and Reactive programming
Brian BeckmanFormer Microsoft Researcher, actual Software Engineer at Amazon. Contributed to implementing FP features to inumerous Microsoft technologies such as C#, LINQ and F#

Backlinks from these awesome lists:

More related projects: