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

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