122 Decks Ordered By Thumbs Up Count - Highest First - Chse one - invert order

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