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

# Title Views  
1 Non-strict functions, bottom, and Scala by-name parameters 707  
2 Symmetry in the interrelation of flatMap/foldMap/traverse and flatten/fold/sequence 779  
3 The Bowling Game - From Imperative to Functional Programming - Part 3 789  
4 Year when lambda functions were introduced in various languages 790  
5 De Morgan's Laws are Monoid Homomorphisms 790  
6 Monad as Functor with pair of Natural Transformations 837  
7 Defining filter using (a) recursion (b) folding (c) folding with S, B and I combinators (d) folding with applicative functor and identity function 844  
8 Addendum to `Monads do not Compose` 849  
9 Monad Transformers - Part 1 853  
10 Functor Composition 859  
11 Function Composition - forward composition versus backward composition 882  
12 Monads do not Compose 902  
13 The Functional Programming Triad of fold, scan and iterate 964  
14 Writer Monad for logging execution of functions 992  
15 Ad hoc Polymorphism using Type Classes and Cats 1007  
16 Natural Transformations 1007  
17 Monoids - Part 2 - With examples using Scalaz and Cats 1039  
18 State Monad 1043  
19 Sequence and Traverse - Part 2 1044  
20 Sequence and Traverse - Part 3 1047  
21 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2 1047  
22 Left and Right Folds - Comparison of a mathematical definition and a programmatic one 1053  
23 Sequence and Traverse - Part 1 1061  
24 Functional Effects - Part 2 1062  
25 Monoids - Part 1 - With examples using Scalaz and Cats 1063  
26 Functional Effects - Part 1 1076  
27 Game of Life - Polyglot FP - Haskell and Scala - Part 2 1077  
28 Game of Life - Polyglot FP - Haskell and Scala - Part 3 1100  
29 Monad Fact #2 1101  
30 Monad Fact #6 1109  
31 Folding Cheat Sheet Series Titles 1112  
32 Fusing Transformations of Strict Scala Collections with Views 1118  
33 Folding Unfolded - Part 4 1118  
34 The aggregate function - from sequential and parallel folds to parallel aggregation 1123  
35 Functor Laws 1135  
36 Function Applicative for Great Good of Palindrome Checker Function 1135  
37 Monad Fact #5 1136  
38 Monad Fact #3 1139  
39 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 1 1142  
40 Arrive at monads by going from composition of pure functions to composition of effectful functions 1164  
41 A sighting of traverseFilter and foldMap in Practical FP in Scala 1166  
42 Applicative Functor - Part 3 1167  
43 Quicksort - a whistle-stop tour of the algorithm in five languages and four paradigms 1168  
44 Folding Unfolded - Part 3 1171  
45 Folding Unfolded - Part 5 1175  
46 A sighting of sequence function in Practical FP in Scala 1175  
47 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 4 1179  
48 Side by Side - Scala and Java Adaptations of Martin Fowler’s Javascript Refactoring Example 1180  
49 The Uniform Access Principle 1183  
50 Sum and Product Types - The Fruit Salad & Fruit Snack Example 1186  
51 ‘go-to’ general-purpose sequential collections - from Java To Scala 1200  
52 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 2 1209  
53 Monad Fact #4 1216  
54 The Monad Fact Series 1221  
55 A sighting of traverse_ in Practical FP in Scala 1230  
56 Monad Fact #1 1235  
57 The Debt Metaphor - Ward Cunningham in his 2009 YouTube video 1237  
58 Sierpinski Triangle - Polyglot FP for Fun and Profit - Haskell and Scala 1273  
59 Applicative Functor - Part 1 1298  
60 Kleisli Composition 1304  
61 Folding Unfolded - Part 2 1323  
62 The Sieve of Eratosthenes - Part 1 1331  
63 Folding Unfolded - Part 1 1334  
64 The Functional Programming Triad of Folding, Scanning and Iteration - A first example in Scala and Haskell 1350  
65 Nat, List and Option Monoids - From scratch - Combining and Folding - An example 1351  
66 Definitions of Functional Programming 1356  
67 Kleisli composition, flatMap, join, map, unit - implementation and interrelation - V2 updated for Scala 3 1362  
68 Folding Cheat Sheet #5 - Folding a list right and left using Cons and Nil results in the identity and reverse functions 1377  
69 Computer Graphics in Java and Scala - Part 1b 1382  
70 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 3 1392  
71 Imperative Bowling Kata - 20 Years On - Delegating Menial Tasks to Github Copilot Chat - using Scala in IntelliJ IDEA 1401  
72 Game of Life - Polyglot FP - Haskell and Scala - Part 1 1403  
73 Applicative Functor - Part 2 1415  
74 Functional Core and Imperative Shell - Game of Life Example - Haskell and Scala 1436  
75 Scala 3 enum for a terser Option Monad Algebraic Data Type 1436  
76 The Sieve of Eratosthenes - Part 2 - Genuine versus Unfaithful Sieve 1474  
77 Drawing Heighway’s Dragon - Part 2 - Recursive Function Simplification - From 2^n Recursive Invocations To n Tail-Recursive Invocations Exploiting Self-Similarity 1478  
78 From Scala Monadic Effects to Unison Algebraic Effects 1479  
79 Algebraic Data Types for Data Oriented Programming - From Haskell and Scala to Java 1481  
80 Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Scala 1483  
81 Test Doubles - Terminology, Definitions and Illustrations - with Examples - Part 1 1498  
82 Computer Graphics in Java and Scala - Part 1 1509  
83 The Expression Problem Part 1 1513  
84 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 1 1549  
85 Drawing Heighway’s Dragon - Part 3 - Simplification Through Separation of Concerns - Rotation Without Matrix Multiplication 1554  
86 Scala Left Fold Parallelisation - Three Approaches 1624  
87 Imperative Bowling Kata - 20 Years On - Delegating Menial Tasks to AI Coding Tool 'Claude Code' 1737  
88 Drawing Heighway’s Dragon - Part 4 - Interactive and Animated Dragon Creation 1758  
89 AI Concepts - MCP Neurons 1767  
90 Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Java 1780  
91 Abstracting over Execution with Higher Kinded Types, and how to remain Purely Functional 1787  
92 Combinatorial Interview Problems with Backtracking Solutions - from Procedural to Functional Programming - Part 2 1804  
93 Folding Cheat Sheet #9 - List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 1877  
94 Compositionality and Category Theory 1878  
95 The Nature of Complexity in John Ousterhout’s Philosophy of Software Design 1896  
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 2049  
97 From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism - An Example 2082  
98 Point-free or Die - Tacit Programming in Haskell 2238  
99 Hand Rolled Applicative User Validation Code Kata 2251  
100 The Bowling Game - From Imperative to Functional Programming - Part 2 2309  
101 A Sighting of filterA in Typelevel Rite of Passage 2313  
102 ApplicativeError functions handling and recovering from errors: A mnemonic to recall their signatures from their names 2350  
103 The Expression Problem Part 2 2371  
104 Tagless Final Encoding - Algebras and Interpreters and also Programs 2383  
105 Combinatorial Interview Problems with Backtracking Solutions - from Procedural to Functional Programming - Part 1 2401  
106 Folding Cheat Sheet #8 - Folding with monoids 2425  
107 The Open-Closed Principle - Part 2 - The Contemporary Version - An Introduction 2516  
108 Folding Cheat Sheet #3 - The universal property of fold 2640  
109 Folding Cheat Sheet #2 - Programmatic and mathematical definitions of right fold and left fold 2644  
110 Function Applicative for Great Good of Leap Year Function 2792  
111 Fibonacci Function Gallery - Part 1 2795  
112 Folding Cheat Sheet #7 - The three duality theorems of fold 2841  
113 The Functional Programming Triad of map, filter and fold 2899  
114 Drawing Heighway’s Dragon - Part 1 - Recursive Function Rewrite - From Imperative Style in Pascal 64 To Functional Style in Scala 3 3000  
115 List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 3088  
116 Fibonacci Function Gallery - Part 2 3126  
117 The Bowling Game - From Imperative to Functional Programming - Part 1 3367  
118 Folding Cheat Sheet #1 - Folding over recursively defined data structures for natural numbers and lists 3794  
119 Lambda Expressions and Java 8 - Lambda Calculus, Lambda Expressions, Syntactic Sugar, First Class Functions 4380  
120 Monad Laws Must Be Checked 4663  
121 Folding Cheat Sheet #6 - Left and right folds and tail recursion 5299  
122 The Open-Closed Principle - Part 1 - The Original Version 5456  
123 N-Queens Combinatorial Puzzle meets Cats 6107  
124 Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid 11660