Think of monads as of codification of imperative effectful computations in a more general way.
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.
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.
Selective Applicative Functors - Declare Your Effects Statically, Select Which to Execute Dynamically.
Effects - Brief exploration of the various approaches to modeling side effects in a purely functional programming language.
Postmodern Programming - Talk about declarative programming in and around imperative code: what, why, and how.
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.
MLKit - Standard ML Compiler and Toolkit.
Counting Immutable Beans (2020) - Reference Counting Optimized for Purely Functional Programming.
Malfunction - High-performance, low-level untyped program representation, designed as a target for compilers of functional programming languages.