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

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