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

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