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

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