- A monad is an abstraction that can be used to parametrize code with the way how computations are sequenced. A monad can also be seen as design pattern, that sometimes makes your code more readable (and, more often, less readable).
- Think of monads as of codification of imperative effectful computations in a more general way.
- Monads are a pattern of using types to encapsulate some data.
- Ah, the functional paradigm. Your brain is screwing with you. You have to stop thinking about telling computer when to do things, you know, do this, then do this, then do this... let computer decide when to do what. Your brain is confused and is trying to tell computer in which order to do things, but did you ever think about the order when creating Excel spreadsheet with formulas? Clojure is like Excel. You focus on the formulas, and Clojure figures out order of execution.
- List of FP Resources
- Introduction to Functional Programming (2020)
- Teens and Functional Programming
- Conversations with a six-year-old on functional programming (HN)
- FP Resources
- OOS is dead only if FP is dead
- Total functional programming (ESFP) literature
- Having an Effect by Oleg Kiselyov
- Monads Demystified (2015)
- Can functional programming be liberated from the von Neumann paradigm? (HN)
- COMP 212: Functional Programming Course (2019) - Purpose of this course is to introduce the theory and practice of functional programming (FP).
- Research papers / Functional pearls - Functional pearls are elegant, instructive examples of functional programming.
- Effects bibliography - Collaborative bibliography of work related to the theory and practice of computational effects.
- Flerp’s Guide to Functional Programming - Collection of the resources I've found most useful when exploring the world of functional programming.
- George Wilson - The Extended Functor Family (2016)
- Functional Programming for the Long Haul by Michael Snoyman (2019)
- Selective Applicative Functors - Declare Your Effects Statically, Select Which to Execute Dynamically.
- What makes a function pure? (2018)
- Foundation of Functional Programming Course (2019)
- Theory of functional programming with Eric Normand (2019)
- Applied Functional Programming Course
- Effects - Brief exploration of the various approaches to modeling side effects in a purely functional programming language.
- Code and materials for book "Functional Design and Architecture" (2019)
- Practical Functional Programming: Prelude (2018)
- Postmodern Programming - Talk about declarative programming in and around imperative code: what, why, and how.
- The Science of Functional Programming book (HN)
- Foundation of functional programming course
- Discrete Mathematics and Functional Programming book (2012)
- TypeFunc - Resources for type theory, functional programming, etc.
- Functional Programming Course - Structured according to a linear progression and uses the Haskell programming language to learn programming concepts pertaining to functional programming.
- Structure and Decomposition of Computer Programs book (2019)
- Speaker Interview with Edward Kmett (2019)
- Why Isn't Functional Programming the Norm? – Richard Feldman (2019) (HN) (Lobsters)
- Purely Functional Data Structures by Chris Okasaki (1996)
- A Type of Programming by Renzo Carbonara
- 3 examples of algebraic thinking (2019)
- Functional Design and Architecture book (2020) (Draft) (Reddit)
- Sara Fransson: Functional lenses through a practical lens (2019)
- Algebraic structures: things i wish someone had explained about functional programming (2019) (HN)
- MLKit - Standard ML Compiler and Toolkit.
- ICFP 2019 preprints/papers
- Functional Programming Jargon
- A Glossary of Functional Programming
- Functional programming design patterns by Scott Wlaschin (2014)
- PhD Abstracts for functional programming (2020)
- Luka Jacobowitz—Monoids, Monoids, Monoids (2019)
- Selective Lambda Lifting (2019)
- Recursion Scheme Talks
- Domain Modeling Made Functional - Scott Wlaschin (2017) (Book)
- The Implementation of Functional Programming Languages book (1987)
- Functional programming great resources
- On the Expressive Power of Indexed Applicative and Monadic Structures (2018)
- Functional Programming for Domain-Specific Languages
- Monads for functional programming
- Effect Handlers via Generalised Continuations (2020)
- The general value of typed functional programming lies in leaving no edge cases (HN)
- Developing Statically Typed Programming Language (2017) (HN)
- Runners in action (2019)
- Seminaïve Evaluation for a Higher-Order Functional Language
- Counting Immutable Beans (2020) - Reference Counting Optimized for Purely Functional Programming.
- What's the best functional language to learn over the next 30 days? (2020)
- Exercises for the course 'Functional Design by John A. De Goes'
- Breaking down "A monad is just a monoid in the category of endofunctors"
- Chalmers Online Functional Programming Seminar Series
- Ask HN: How to be fluent in functional language speak? (2020)
- A Quick Look at Impredicativity (Simon Peyton Jones) (2020)
- Purely Functional Data Structures and Monoids (2020)
- Designing a functional programming language: Yatta (2020) (HN)
- Malfunction - High-performance, low-level untyped program representation, designed as a target for compilers of functional programming languages.
- Practical type inference for arbitrary-rank types (2007)
- Monads in 15 minutes: Backtracking and Maybe (2007)
- Functional Code is Honest Code (2020) (Lobsters)
- Talk: Denotational Design: from meanings to programs
- Functional Programming for Array-Based Parallelism (2020) (HN)
- Graham Hutton: Publications
- Queensland Functional Programming Lab
- List of useful resources to learn typed FP
- Monads and Mom (2020) (Lobsters)
- Learn Functional Programming Design from Redux (2020) (HN)
- Imperative functional programming (1992)
- Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire (1991) (Web)
- Monads, Explained Without Bullshit (2020)
- Is Haskell good for learning functional programming? (2020)
- Functional lessons learnt (2019)
- Algebra-Driven Design book - Elegant Software from Simple Building Blocks. (Lobsters)
- What is functional reactive programming
- Implement Box functional data structure
- CS316 “Functional Programming” course (2020)
- Of Groups and Monads (Lobsters)
- Compositional Podcast - All about functional programming in practice.
- Understanding Combinators using Elm
- Objects in Functional Languages (Lobsters) (HN)
- Functional Christmas
- Lambda the Ultimate Pattern Factory - FP, Haskell, Typeclassopedia vs Software Design Patterns.
- Reconciling concepts from FP and OOP (2020)
- Book of Monads (Code)
- Functional Pearl: It’s Easy As 1,2,3 (2021)
- Functional pearl: getting a quick fix on comonads (2015) (Code)
- Fool's scriptum on functional programming - Course about purely functional programming in JavaScript based on the scriptum library.
- PhD research notes on using pure functional programming for implementing Agent-Based Simulations (ABS)
- Cube Composer - Learn Functional Programming Visually. (Code) (HN)
- Myth - Type-and-example-driven program synthesis for functional programming languages.
- Profunctor Optics: Modular Data Accessors (2017)
- OCaml, Erlang, and Functional Programming with Leandro Ostera (2021)
- Functional Programming Slack
- Can continuation passing style code perform well? (2021) (HN) (Lobsters)
