- Functional programming patterns
- Types
- Functional Effects
- Semigroup / Monoid
- Tagless Final / MTL
- Monad stack
- Free Monad
- Typeclass
- Concurrency
- Optics
- Recursion Schemes
- Theory
- Academic papers
- Lectures
- Blogs
- Books
- Chat rooms
- Newsletters
- Podcasts
- Repositories
- Events
-
Functional Programming is Terrible - Rúnar Bjarnason
- Tail Recursion, Trampolining, Higher Kinded Types, Benefits of Functional Programming
-
What Referential Transparency can do for you - Luka Jacobowitz
- Functional Programming Design, Referential Transparency and side-effects
-
Functional Design Patterns - Scott Wlaschin
- Functional design patterns from partial application to Monads and Monoids
-
- Live coding session on Functional Programming design and techniques
-
Constraints Liberate, Liberties Constrain — Runar Bjarnason
- Functional Programming design
-
May Your Data Ever Be Coherent
- Functional Programming design
-
Functional Patterns in Domain Modeling — Debasish Ghosh
- Functional domain modeling
-
- Live-refactor concurrent imperative program with ZIO
-
Functors, in theory and in practice! - Martin Menestret
- Functors
-
Anatomy of functional programming
- Functional Programming design
-
- Functional Programming design
-
- List of good practice in Scala
-
Trampolining and stack safety in Scala
- Trampolining, tail call elimination
-
Algebraic API Design - Types, Functions, Properties
- Types, Functions, Properties
-
- Algebraic Data Type (ADT)
-
Why do Functional Programmers always talk about Algebra(s)?
- Domain Algebra, Algebraic structure
-
Type Members vs Type Parameters
- How to choose between Type Members and Type Parameters
-
- Scala Type System
-
- Function encodings
-
- Type Theory in Scala
-
From Type Theory to Haskell in 10 Minutes [Haskell]
- Type Theory in Haskell
-
- Using Scala in a Type Safe way
-
Functional APIs: an OOP approach to FP
- Generalized Algebraic Data Types (GADTs)
-
How do Algebraic Data types compare to the concept of inheritance in Object Oriented Languages ?
- Algebraic Data Types (ADTs)
-
Data type vs Data constructor [Haskell]
- What are data types and data constructors, how they relate in Haskell
-
Functional Programming with Effects - Rob Norris
- Effects and Equational Reasoning
-
- Functional Effects, Tagless Final alternative with ZIO
-
The Making of an IO - Daniel Spiewak
- IO Monad with Cats Effect
-
http4s: pure, typeful, functional HTTP in Scala – Ross Baker
- IO, HTTP4s, Kleisli
-
Declarative Control Flow with fs2 Stream – Fabio Labella
- Functional Stream with fs2
-
Regaining Control with State Monad and Friends
- State, StateT, IndexedState
-
Michał Płachta - Fast & Functional
- FP design, tagless final, performance
-
Gabriel Volpe - Cats Effect: The IO Monad for Scala
- Cats Effect, error handling, safe resource management, concurrency, parallelism
-
John De Goes - Error Management: Future vs ZIO
- Errors composition, ZIO, Future
-
IO monads, Tagless final, free and alternatives
- IO, Tagless final, Free, Eff
-
ZIO Monad, Scala's ReaderT pattern
- Functional Effects, Tagless Final, ReaderT
-
Effekt: Extensible Algebraic Effects in Scala
- Algebraic effects, Scala library Effekt
-
Handle pattern [Haskell]
- Modularize Effectful layer of medium to large scaled Haskell applications
-
ReaderT pattern: RIO [Haskell]
- Better globals with ReaderT
-
Why Functional Programming? It's the composition
- Compositions, Effects, Functor, Monad, Category Theory
-
A Problem With I/O [Haskell]
- Monad IO in Haskell
-
- Journey to Semirings through Semigroups and Monoids
-
Anatomy of semigroups and monoids
- Semigroups and Monoids
-
Advanced Tagless Final - Saying farewell to Free - Luka Jacobowitz
- Free Monad, Tagless Final
-
A roadtrip with monads: from MTL, through tagless, to BIO - Paweł Szulc
- MTL, Tagless Final, BIO
-
Getting more mileage from your monads and MTL - Paweł Szulc
- MTL style
-
Free monad or tagless final? How not to commit to a monad too early - Adam Warski
- Live coding session on Free monads and Tagless Final
-
Freestyle, Free & Tagless: Separation of Concerns on Steroids - Michał Płachta
- Free and Tagless in a real application
-
- Tagless Final
-
Exploring Tagless Final pattern for extensive and readable Scala code
- Tagless Final
-
Gist about Fabio Labella's on inital vs final tagless encodings
- Tagless Final
-
Testing tagless final with Discipline
- Tagless Final with the Typelevel library Discipline
-
Structuring Functional Programs with Tagless Final
- Tagless Final
-
Typed tagless-final interpretations: Lecture notes
- Tagless Final
-
Optimizing Tagless Final – Saying farewell to Free
- Tagless Final
-
From Object Algebras to Finally Tagless Interpreters [Haskell]
- Tagless Final
-
- MTL style
-
Typed tagless-final interpretations [Haskell]
- Typed Tagless Final embeddings of Domain-Specific Languages (DSLs)
-
Finally Tagless - Not Quite Dead Yet
- Tagless Final, code examples
-
The False Hope of Managing Effects with Tagless-Final in Scala
-
Monad transformers down to earth - Gabriele Petronella
- Monad Transformer
-
The Eff monad, one monad to rule them all - Eric Torreborre
- Eff monad
-
Monad Stacks or: How I Learned to Stop Worrying and Love the Free Monad – Harry Laoulakos
- Monad Stacks
-
- Monad Transformer
-
- (EDSLs) Embedded domain specific languages
-
- (EDSLs) Embedded domain specific languages
-
Free monad or tagless final? How not to commit to a monad too early - Adam Warski
- Live coding session on Free monads and Tagless Final
-
Freestyle, Free & Tagless: Separation of Concerns on Steroids - Michał Płachta
- Free and Tagless in a real application
-
Move Over Free Monads: Make Way for Free Applicatives! — John de Goes
- Free Applicatives
-
A Year living Freely – Chris Myers
- Free Monad
-
Free as in Monads by Daniel Spiewak
- Live coding session on Free Monad
-
Free and tagless compared - how not to commit to a monad too early
- Free Monad and Tagless Final
-
- Free structure with Monoids and Monads
-
A tale of two Monads: Free vs MTL
- Free Monad vs MTL style
-
A tale of two Monads: Free vs MTL
- Journey through Free and MTL style
-
Mastering Typeclass Induction — Aaron Levin
- Inductions and Typeclasses
-
Oh, all the things you'll traverse - Luka Jacobowitz
- Traversable Typeclass, starting with folds all the way to Monoids and Traversable Functors
-
- Parametric and ad hoc polymorphism, Typeclasses
-
- Typeclasses, Polymorphic functions
-
- Typeclasses
-
Implicits, type classes, and extension methods
- Implicits and Typeclasses
-
Typeclasses in perspective [Haskell]
- Typeclasses, Extensibility, Conditional implementation, Polymorphism
-
Inheritance vs Generics vs Typeclasses in Scala
- Parametric Polymorphism (generics) and Typeclasses
-
Typeclass counterexample [Haskell]
- Typeclasses
-
OOP vs. FP. The pursuit of extensibility
- Typeclasses
-
Concurrency with Cats-effect - Michael Pilquist
- fiber, Cats Effects, fs2
-
ATOMICALLY { DELETE YOUR ACTORS } - John A De Goes & Wiem Zine Elabadine
- ZIO, STM, Promise, Queue and more
-
Pure Functional Database Programming with Fixpoint Types — Rob Norris
- Fixpoint, Recursion Schemes
-
Peeling the Banana: Recursion Schemes from First Principles - Zainab Ali
- Recursion Schemes
-
Those 10000 classes I never wrote - Valentin Kasas
- Hylomorphisms, Expressive Schemes
-
Going bananas with recursion schemes for fixed point data types - Paweł Szulc
- Catamorphism, Fixpoint data type, Matryoshka
- Recursion training
- Resources and examples on Recursion Schemes
-
Propositions as Types - Philip Wadler
- Relation between Logic and Computation
-
A History of Computation, Logic and Algebra
- Logic, Algebra and Category Theory
-
Crash course into category theory - Rúnar Bjarnason
- Category Theory
-
Category Theory for the Working Hacker - Philip Wadler
- Category Theory
-
Category Theory - Bartosz Milewski
- Category Theory playlist
-
Stephen Pimentel - Propositions as Types for Beginners in Haskell [Haskell]
- Curry-Howard isomorphism
-
Why a monad is a monoid in the category of endofunctors
- Functor, Natural Transformation, Bifunctor, Monoidal Category, Monoid, Monad
-
- Type Theory
-
Category theory and programming
- Category theory
-
- Category theory
-
- Category theory
-
A History of Computation, Logic and Algebra
- Logic, Algebra and Category Theory
-
Anatomy of functors and category theory
- Functors and Category Theory
-
- Monad and Category Theory
-
Theorems for Free! - P. Wadler
- Polymorphic function, Abstraction Theorem
-
Propositions as types - P. Wadler
- Type Theory, Programming Language
-
Freer Monads, More Extensible Effects [Haskell]
- Extensible Effects
-
Data types a la carte [Haskell]
- Assembling Data Types and functions
-
Why Functional Programming Matters - John Hughes
- High-Order Functions (HOFs) and Lazy Evaluation
-
Algebraic effects for Functional Programming
- Algebraic Effects, Type Inference, compilation scheme
-
FP Foundation - Julien Truffaut
- Scala course, Functional programming
-
Goteborg university - Haskell advanced Functional Programming [Haskell]
- Haskell course
-
Data61 Haskell functional programming course [Haskell]
- Haskell, Functional programming course
-
Google's Haskell 101 and 102 [Haskell]
- Haskell, Functional programming, beginner friendly
-
- Creating good tech teaching resources
-
FP Complete [Haskell]
-
Category theory for programmers
-
The Books of Monads [Scala] [Haskell]
-
- Http4s, Circe, Doobie, Cats, Cats Effects, ScalaCheck, Circe Config, Tagless Final
-
- Cats, Cats Effects, fs2, Tagless Final
-
- Patterns from math (Category theory, Abstract algebra) in Scala
Thanks to @olivierschultz who helps me maintain that list !