110 Decks - Earliest First - Chse one - invert order

  1   The Open-Closed Principle - Part 1 - The Original Version   
  2   The Open-Closed Principle - Part 2 - The Contemporary Version - An Introduction   
  3   Lambda Expressions and Java 8 - Lambda Calculus, Lambda Expressions, Syntactic Sugar, First Class Functions   
  4   De Morgan's Laws are Monoid Homomorphisms   
  5   Arrive at monads by going from composition of pure functions to composition of effectful functions   
  6   Compositionality and Category Theory   
  7   Functor Laws   
  8   Natural Transformations   
  9   Monad as Functor with pair of Natural Transformations   
  10   Monad Laws Must Be Checked   
  11   Kleisli Composition   
  12   Writer Monad for logging execution of functions   
  13   Applicative Functor - Part 1   
  14   Sequence and Traverse - Part 1   
  15   Definitions of Functional Programming   
  16   Monoids - Part 1 - With examples using Scalaz and Cats   
  17   Monoids - Part 2 - With examples using Scalaz and Cats   
  18   Sequence and Traverse - Part 2   
  19   Sequence and Traverse - Part 3   
  20   Functor Composition   
  21   Monads do not Compose   
  22   Monad Transformers - Part 1   
  23   Addendum to `Monads do not Compose`   
  24   Non-strict functions, bottom, and Scala by-name parameters   
  25   Function Composition - forward composition versus backward composition   
  26   Year when lambda functions were introduced in various languages   
  27   Ad hoc Polymorphism using Type Classes and Cats   
  28   Symmetry in the interrelation of flatMap/foldMap/traverse and flatten/fold/sequence   
  29   Functional Effects - Part 1   
  30   Functional Effects - Part 2   
  31   Applicative Functor - Part 2   
  32   Applicative Functor - Part 3   
  33   State Monad   
  34   Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 1   
  35   The Monad Fact Series   
  36   Monad Fact #1   
  37   Monad Fact #2   
  38   Monad Fact #3   
  39   Monad Fact #4   
  40   Monad Fact #5   
  41   Monad Fact #6   
  42   From Scala Monadic Effects to Unison Algebraic Effects   
  43   Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2   
  44   Game of Life - Polyglot FP - Haskell and Scala - Part 1   
  45   Game of Life - Polyglot FP - Haskell and Scala - Part 2   
  46   Game of Life - Polyglot FP - Haskell and Scala - Part 3   
  47   Folding Unfolded - Part 1   
  48   Folding Unfolded - Part 2   
  49   Folding Unfolded - Part 3   
  50   Folding Unfolded - Part 4   
  51   The Functional Programming Triad of Folding, Scanning and Iteration - A first example in Scala and Haskell   
  52   Folding Unfolded - Part 5   
  53   Scala 3 enum for a terser Option Monad Algebraic Data Type   
  54   Function Applicative for Great Good of Palindrome Checker Function   
  55   Sierpinski Triangle - Polyglot FP for Fun and Profit - Haskell and Scala   
  56   N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 1   
  57   N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 2   
  58   Left and Right Folds - Comparison of a mathematical definition and a programmatic one   
  59   N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 3   
  60   Quicksort - a whistle-stop tour of the algorithm in five languages and four paradigms   
  61   N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 4   
  62   Functional Core and Imperative Shell - Game of Life Example - Haskell and Scala   
  63   The Functional Programming Triad of map, filter and fold   
  64   ‘go-to’ general-purpose sequential collections - from Java To Scala   
  65   Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Scala   
  66   Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Java   
  67   Side by Side - Scala and Java Adaptations of Martin Fowler’s Javascript Refactoring Example   
  68   The Expression Problem Part 1   
  69   Computer Graphics in Java and Scala - Part 1   
  70   The Expression Problem Part 2   
  71   Computer Graphics in Java and Scala - Part 1b   
  72   The Uniform Access Principle   
  73   The Sieve of Eratosthenes - Part 1   
  74   Algebraic Data Types for Data Oriented Programming - From Haskell and Scala to Java   
  75   Sum and Product Types - The Fruit Salad & Fruit Snack Example   
  76   The Sieve of Eratosthenes - Part 2 - Genuine versus Unfaithful Sieve   
  77   Nat, List and Option Monoids - From scratch - Combining and Folding - An example   
  78   The aggregate function - from sequential and parallel folds to parallel aggregation   
  79   Kleisli composition, flatMap, join, map, unit - implementation and interrelation - V2 updated for Scala 3   
  80   N-Queens Combinatorial Puzzle meets Cats   
  81   A sighting of sequence function in Practical FP in Scala   
  82   A sighting of traverseFilter and foldMap in Practical FP in Scala   
  83   A sighting of traverse_ in Practical FP in Scala   
  84   Fusing Transformations of Strict Scala Collections with Views   
  85   Tagless Final Encoding - Algebras and Interpreters and also Programs   
  86   Scala Left Fold Parallelisation - Three Approaches   
  87   Folding Cheat Sheet Series Titles   
  88   Folding Cheat Sheet #1 - Folding over recursively defined data structures for natural numbers and lists   
  89   Folding Cheat Sheet #2 - Programmatic and mathematical definitions of right fold and left fold   
  90   Folding Cheat Sheet #3 - The universal property of fold   
  91   Folding Cheat Sheet #4 - For functions that can be defined both as a right fold and as a left fold, one may be more efficient than the other   
  92   Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid   
  93   A Sighting of filterA in Typelevel Rite of Passage   
  94   Hand Rolled Applicative User Validation Code Kata   
  95   Folding Cheat Sheet #5 - Folding a list right and left using Cons and Nil results in the identity and reverse functions   
  96   Folding Cheat Sheet #6 - Left and right folds and tail recursion   
  97   Folding Cheat Sheet #7 - The three duality theorems of fold   
  98   Function Applicative for Great Good of Leap Year Function   
  99   Folding Cheat Sheet #8 - Folding with monoids   
  100   From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism - An Example   
  101   The Debt Metaphor - Ward Cunningham in his 2009 YouTube video   
  102   Fibonacci Function Gallery - Part 1   
  103   Fibonacci Function Gallery - Part 2   
  104   Drawing Heighway’s Dragon - Part 1 - Recursive Function Rewrite - From Imperative Style in Pascal 64 To Functional Style in Scala 3   
  105   Drawing Heighway’s Dragon - Part 2 - Recursive Function Simplification - From 2^n Recursive Invocations To n Tail-Recursive Invocations Exploiting Self-Similarity   
  106   Drawing Heighway’s Dragon - Part 3 - Simplification Through Separation of Concerns - Rotation Without Matrix Multiplication   
  107   The Nature of Complexity in John Ousterhout’s Philosophy of Software Design   
  108   Drawing Heighway’s Dragon - Part 4 - Interactive and Animated Dragon Creation   
  109   List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate'   
  110   Folding Cheat Sheet #9 - List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate'