124 Decks Ordered By View Count - Lowest First - Chse one - invert order

# Title Views  
1 Non-strict functions, bottom, and Scala by-name parameters 755  
2 Symmetry in the interrelation of flatMap/foldMap/traverse and flatten/fold/sequence 818  
3 De Morgan's Laws are Monoid Homomorphisms 826  
4 Year when lambda functions were introduced in various languages 835  
5 Addendum to `Monads do not Compose` 890  
6 Monad as Functor with pair of Natural Transformations 892  
7 Monad Transformers - Part 1 894  
8 Defining filter using (a) recursion (b) folding (c) folding with S, B and I combinators (d) folding with applicative functor and identity function 897  
9 Functor Composition 904  
10 Function Composition - forward composition versus backward composition 929  
11 Monads do not Compose 944  
12 The Functional Programming Triad of fold, scan and iterate 1012  
13 Writer Monad for logging execution of functions 1038  
14 Natural Transformations 1048  
15 Ad hoc Polymorphism using Type Classes and Cats 1050  
16 Monoids - Part 2 - With examples using Scalaz and Cats 1083  
17 State Monad 1084  
18 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2 1088  
19 Sequence and Traverse - Part 3 1090  
20 Sequence and Traverse - Part 2 1093  
21 Left and Right Folds - Comparison of a mathematical definition and a programmatic one 1099  
22 Sequence and Traverse - Part 1 1103  
23 Monoids - Part 1 - With examples using Scalaz and Cats 1108  
24 Functional Effects - Part 2 1108  
25 Game of Life - Polyglot FP - Haskell and Scala - Part 2 1118  
26 Functional Effects - Part 1 1118  
27 Monad Fact #2 1138  
28 Game of Life - Polyglot FP - Haskell and Scala - Part 3 1145  
29 Monad Fact #6 1156  
30 Folding Cheat Sheet Series Titles 1163  
31 Folding Unfolded - Part 4 1166  
32 Fusing Transformations of Strict Scala Collections with Views 1167  
33 The aggregate function - from sequential and parallel folds to parallel aggregation 1171  
34 Function Applicative for Great Good of Palindrome Checker Function 1181  
35 Monad Fact #5 1184  
36 Functor Laws 1186  
37 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 1 1187  
38 Monad Fact #3 1188  
39 Arrive at monads by going from composition of pure functions to composition of effectful functions 1201  
40 A sighting of traverseFilter and foldMap in Practical FP in Scala 1205  
41 Applicative Functor - Part 3 1207  
42 Folding Unfolded - Part 3 1212  
43 Quicksort - a whistle-stop tour of the algorithm in five languages and four paradigms 1215  
44 A sighting of sequence function in Practical FP in Scala 1219  
45 Folding Unfolded - Part 5 1222  
46 Side by Side - Scala and Java Adaptations of Martin Fowler’s Javascript Refactoring Example 1230  
47 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 4 1232  
48 Sum and Product Types - The Fruit Salad & Fruit Snack Example 1232  
49 The Uniform Access Principle 1233  
50 ‘go-to’ general-purpose sequential collections - from Java To Scala 1249  
51 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 2 1254  
52 Monad Fact #4 1259  
53 The Monad Fact Series 1266  
54 A sighting of traverse_ in Practical FP in Scala 1276  
55 Monad Fact #1 1281  
56 The Debt Metaphor - Ward Cunningham in his 2009 YouTube video 1293  
57 Sierpinski Triangle - Polyglot FP for Fun and Profit - Haskell and Scala 1322  
58 Applicative Functor - Part 1 1348  
59 Kleisli Composition 1355  
60 The Sieve of Eratosthenes - Part 1 1377  
61 Folding Unfolded - Part 2 1386  
62 Folding Unfolded - Part 1 1390  
63 Nat, List and Option Monoids - From scratch - Combining and Folding - An example 1397  
64 Definitions of Functional Programming 1399  
65 The Functional Programming Triad of Folding, Scanning and Iteration - A first example in Scala and Haskell 1401  
66 Kleisli composition, flatMap, join, map, unit - implementation and interrelation - V2 updated for Scala 3 1405  
67 Folding Cheat Sheet #5 - Folding a list right and left using Cons and Nil results in the identity and reverse functions 1427  
68 Computer Graphics in Java and Scala - Part 1b 1434  
69 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 3 1444  
70 Game of Life - Polyglot FP - Haskell and Scala - Part 1 1456  
71 Imperative Bowling Kata - 20 Years On - Delegating Menial Tasks to Github Copilot Chat - using Scala in IntelliJ IDEA 1462  
72 Applicative Functor - Part 2 1475  
73 Functional Core and Imperative Shell - Game of Life Example - Haskell and Scala 1489  
74 Scala 3 enum for a terser Option Monad Algebraic Data Type 1498  
75 Algebraic Data Types for Data Oriented Programming - From Haskell and Scala to Java 1527  
76 From Scala Monadic Effects to Unison Algebraic Effects 1529  
77 The Sieve of Eratosthenes - Part 2 - Genuine versus Unfaithful Sieve 1531  
78 Drawing Heighway’s Dragon - Part 2 - Recursive Function Simplification - From 2^n Recursive Invocations To n Tail-Recursive Invocations Exploiting Self-Similarity 1538  
79 Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Scala 1542  
80 The Bowling Game - From Imperative to Functional Programming - Part 3 1546  
81 The Expression Problem Part 1 1551  
82 Computer Graphics in Java and Scala - Part 1 1556  
83 Test Doubles - Terminology, Definitions and Illustrations - with Examples - Part 1 1558  
84 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 1 1600  
85 Drawing Heighway’s Dragon - Part 3 - Simplification Through Separation of Concerns - Rotation Without Matrix Multiplication 1617  
86 Scala Left Fold Parallelisation - Three Approaches 1701  
87 Imperative Bowling Kata - 20 Years On - Delegating Menial Tasks to AI Coding Tool 'Claude Code' 1810  
88 Drawing Heighway’s Dragon - Part 4 - Interactive and Animated Dragon Creation 1817  
89 AI Concepts - MCP Neurons 1839  
90 Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Java 1843  
91 Combinatorial Interview Problems with Backtracking Solutions - from Procedural to Functional Programming - Part 2 1859  
92 Compositionality and Category Theory 1933  
93 Folding Cheat Sheet #9 - List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 1937  
94 The Nature of Complexity in John Ousterhout’s Philosophy of Software Design 1963  
95 Abstracting over Execution with Higher Kinded Types, and how to remain Purely Functional 1964  
96 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 2096  
97 From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism - An Example 2143  
98 Point-free or Die - Tacit Programming in Haskell 2310  
99 Hand Rolled Applicative User Validation Code Kata 2314  
100 A Sighting of filterA in Typelevel Rite of Passage 2368  
101 ApplicativeError functions handling and recovering from errors: A mnemonic to recall their signatures from their names 2407  
102 Tagless Final Encoding - Algebras and Interpreters and also Programs 2432  
103 The Bowling Game - From Imperative to Functional Programming - Part 2 2452  
104 Folding Cheat Sheet #8 - Folding with monoids 2473  
105 Combinatorial Interview Problems with Backtracking Solutions - from Procedural to Functional Programming - Part 1 2478  
106 The Open-Closed Principle - Part 2 - The Contemporary Version - An Introduction 2559  
107 The Expression Problem Part 2 2570  
108 Folding Cheat Sheet #3 - The universal property of fold 2690  
109 Folding Cheat Sheet #2 - Programmatic and mathematical definitions of right fold and left fold 2723  
110 Fibonacci Function Gallery - Part 1 2857  
111 Function Applicative for Great Good of Leap Year Function 2860  
112 Folding Cheat Sheet #7 - The three duality theorems of fold 2884  
113 The Functional Programming Triad of map, filter and fold 2979  
114 Drawing Heighway’s Dragon - Part 1 - Recursive Function Rewrite - From Imperative Style in Pascal 64 To Functional Style in Scala 3 3050  
115 List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 3161  
116 Fibonacci Function Gallery - Part 2 3189  
117 The Bowling Game - From Imperative to Functional Programming - Part 1 3565  
118 Folding Cheat Sheet #1 - Folding over recursively defined data structures for natural numbers and lists 3846  
119 Lambda Expressions and Java 8 - Lambda Calculus, Lambda Expressions, Syntactic Sugar, First Class Functions 4616  
120 Monad Laws Must Be Checked 4891  
121 Folding Cheat Sheet #6 - Left and right folds and tail recursion 5519  
122 The Open-Closed Principle - Part 1 - The Original Version 5698  
123 N-Queens Combinatorial Puzzle meets Cats 6368  
124 Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid 12050