120 Decks Ordered By View Count - Highest First - Chse one - invert order

# Title Views  
1 Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid 9993  
2 N-Queens Combinatorial Puzzle meets Cats 4636  
3 The Open-Closed Principle - Part 1 - The Original Version 4424  
4 Folding Cheat Sheet #6 - Left and right folds and tail recursion 4309  
5 Monad Laws Must Be Checked 3724  
6 Folding Cheat Sheet #1 - Folding over recursively defined data structures for natural numbers and lists 3552  
7 Lambda Expressions and Java 8 - Lambda Calculus, Lambda Expressions, Syntactic Sugar, First Class Functions 3433  
8 Fibonacci Function Gallery - Part 2 2849  
9 List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 2793  
10 Folding Cheat Sheet #7 - The three duality theorems of fold 2633  
11 The Functional Programming Triad of map, filter and fold 2548  
12 Drawing Heighway’s Dragon - Part 1 - Recursive Function Rewrite - From Imperative Style in Pascal 64 To Functional Style in Scala 3 2545  
13 Fibonacci Function Gallery - Part 1 2530  
14 Function Applicative for Great Good of Leap Year Function 2529  
15 Folding Cheat Sheet #2 - Programmatic and mathematical definitions of right fold and left fold 2428  
16 Folding Cheat Sheet #3 - The universal property of fold 2401  
17 The Open-Closed Principle - Part 2 - The Contemporary Version - An Introduction 2258  
18 Folding Cheat Sheet #8 - Folding with monoids 2200  
19 Tagless Final Encoding - Algebras and Interpreters and also Programs 2126  
20 A Sighting of filterA in Typelevel Rite of Passage 2107  
21 ApplicativeError functions handling and recovering from errors: A mnemonic to recall their signatures from their names 2073  
22 Point-free or Die - Tacit Programming in Haskell 2021  
23 Hand Rolled Applicative User Validation Code Kata 1980  
24 Combinatorial Interview Problems with Backtracking Solutions - from Procedural to Functional Programming - Part 1 1952  
25 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 1816  
26 From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism - An Example 1810  
27 Compositionality and Category Theory 1670  
28 Folding Cheat Sheet #9 - List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 1645  
29 The Nature of Complexity in John Ousterhout’s Philosophy of Software Design 1613  
30 The Expression Problem Part 2 1545  
31 Combinatorial Interview Problems with Backtracking Solutions - from Procedural to Functional Programming - Part 2 1525  
32 Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Java 1509  
33 Drawing Heighway’s Dragon - Part 4 - Interactive and Animated Dragon Creation 1485  
34 AI Concepts - MCP Neurons 1405  
35 Scala Left Fold Parallelisation - Three Approaches 1393  
36 Imperative Bowling Kata - 20 Years On - Delegating Menial Tasks to AI Coding Tool 'Claude Code' 1385  
37 The Expression Problem Part 1 1332  
38 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 1 1329  
39 Drawing Heighway’s Dragon - Part 3 - Simplification Through Separation of Concerns - Rotation Without Matrix Multiplication 1291  
40 Computer Graphics in Java and Scala - Part 1 1273  
41 Algebraic Data Types for Data Oriented Programming - From Haskell and Scala to Java 1272  
42 Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Scala 1248  
43 The Sieve of Eratosthenes - Part 2 - Genuine versus Unfaithful Sieve 1232  
44 Test Doubles - Terminology, Definitions and Illustrations - with Examples - Part 1 1227  
45 Drawing Heighway’s Dragon - Part 2 - Recursive Function Simplification - From 2^n Recursive Invocations To n Tail-Recursive Invocations Exploiting Self-Similarity 1217  
46 Functional Core and Imperative Shell - Game of Life Example - Haskell and Scala 1194  
47 From Scala Monadic Effects to Unison Algebraic Effects 1189  
48 Scala 3 enum for a terser Option Monad Algebraic Data Type 1172  
49 Folding Cheat Sheet #5 - Folding a list right and left using Cons and Nil results in the identity and reverse functions 1167  
50 Kleisli composition, flatMap, join, map, unit - implementation and interrelation - V2 updated for Scala 3 1167  
51 Applicative Functor - Part 2 1166  
52 Definitions of Functional Programming 1156  
53 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 3 1154  
54 Computer Graphics in Java and Scala - Part 1b 1146  
55 Game of Life - Polyglot FP - Haskell and Scala - Part 1 1137  
56 Nat, List and Option Monoids - From scratch - Combining and Folding - An example 1132  
57 The Sieve of Eratosthenes - Part 1 1113  
58 Kleisli Composition 1110  
59 Folding Unfolded - Part 1 1102  
60 The Functional Programming Triad of Folding, Scanning and Iteration - A first example in Scala and Haskell 1090  
61 Folding Unfolded - Part 2 1083  
62 Applicative Functor - Part 1 1062  
63 Monad Fact #1 1049  
64 Sierpinski Triangle - Polyglot FP for Fun and Profit - Haskell and Scala 1039  
65 A sighting of traverse_ in Practical FP in Scala 1035  
66 The Monad Fact Series 1022  
67 The Debt Metaphor - Ward Cunningham in his 2009 YouTube video 1013  
68 Monad Fact #4 1006  
69 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 2 1005  
70 A sighting of sequence function in Practical FP in Scala 996  
71 Quicksort - a whistle-stop tour of the algorithm in five languages and four paradigms 989  
72 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 4 984  
73 Sum and Product Types - The Fruit Salad & Fruit Snack Example 983  
74 Side by Side - Scala and Java Adaptations of Martin Fowler’s Javascript Refactoring Example 982  
75 ‘go-to’ general-purpose sequential collections - from Java To Scala 969  
76 A sighting of traverseFilter and foldMap in Practical FP in Scala 969  
77 Applicative Functor - Part 3 958  
78 The Uniform Access Principle 957  
79 Folding Unfolded - Part 5 956  
80 Arrive at monads by going from composition of pure functions to composition of effectful functions 955  
81 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 1 952  
82 Monad Fact #3 945  
83 Folding Unfolded - Part 3 942  
84 Functor Laws 940  
85 Function Applicative for Great Good of Palindrome Checker Function 936  
86 Fusing Transformations of Strict Scala Collections with Views 933  
87 Monad Fact #6 932  
88 Imperative Bowling Kata - 20 Years On - Delegating Menial Tasks to Github Copilot Chat - using Scala in IntelliJ IDEA 932  
89 Folding Unfolded - Part 4 928  
90 The aggregate function - from sequential and parallel folds to parallel aggregation 926  
91 Monad Fact #5 922  
92 Monad Fact #2 906  
93 Game of Life - Polyglot FP - Haskell and Scala - Part 3 905  
94 Folding Cheat Sheet Series Titles 899  
95 Game of Life - Polyglot FP - Haskell and Scala - Part 2 882  
96 Functional Effects - Part 1 882  
97 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2 869  
98 Left and Right Folds - Comparison of a mathematical definition and a programmatic one 855  
99 Monoids - Part 1 - With examples using Scalaz and Cats 850  
100 Functional Effects - Part 2 849  
101 Sequence and Traverse - Part 1 843  
102 State Monad 838  
103 Sequence and Traverse - Part 3 834  
104 Natural Transformations 828  
105 Sequence and Traverse - Part 2 825  
106 Monoids - Part 2 - With examples using Scalaz and Cats 821  
107 Ad hoc Polymorphism using Type Classes and Cats 799  
108 Writer Monad for logging execution of functions 795  
109 Monads do not Compose 693  
110 Function Composition - forward composition versus backward composition 687  
111 Functor Composition 663  
112 Monad Transformers - Part 1 651  
113 Addendum to `Monads do not Compose` 646  
114 Monad as Functor with pair of Natural Transformations 635  
115 De Morgan's Laws are Monoid Homomorphisms 626  
116 Year when lambda functions were introduced in various languages 607  
117 Defining filter using (a) recursion (b) folding (c) folding with S, B and I combinators (d) folding with applicative functor and identity function 605  
118 Symmetry in the interrelation of flatMap/foldMap/traverse and flatten/fold/sequence 598  
119 The Functional Programming Triad of fold, scan and iterate 595  
120 Non-strict functions, bottom, and Scala by-name parameters 519