118 Decks Ordered By PDF Download Count - Highest First - Chse one - invert order

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