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

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