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