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

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