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

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