123 Decks Ordered By Love Count - Lowest First - Chse one - invert order

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