122 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 10758  
2 N-Queens Combinatorial Puzzle meets Cats 5523  
3 The Open-Closed Principle - Part 1 - The Original Version 4877  
4 Folding Cheat Sheet #6 - Left and right folds and tail recursion 4748  
5 Monad Laws Must Be Checked 4139  
6 Lambda Expressions and Java 8 - Lambda Calculus, Lambda Expressions, Syntactic Sugar, First Class Functions 3865  
7 Folding Cheat Sheet #1 - Folding over recursively defined data structures for natural numbers and lists 3682  
8 Fibonacci Function Gallery - Part 2 2986  
9 List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 2935  
10 Drawing Heighway’s Dragon - Part 1 - Recursive Function Rewrite - From Imperative Style in Pascal 64 To Functional Style in Scala 3 2859  
11 Folding Cheat Sheet #7 - The three duality theorems of fold 2742  
12 The Functional Programming Triad of map, filter and fold 2724  
13 The Bowling Game - From Imperative to Functional Programming - Part 1 2657  
14 Fibonacci Function Gallery - Part 1 2652  
15 Function Applicative for Great Good of Leap Year Function 2645  
16 Folding Cheat Sheet #2 - Programmatic and mathematical definitions of right fold and left fold 2546  
17 Folding Cheat Sheet #3 - The universal property of fold 2538  
18 The Open-Closed Principle - Part 2 - The Contemporary Version - An Introduction 2390  
19 Folding Cheat Sheet #8 - Folding with monoids 2325  
20 Tagless Final Encoding - Algebras and Interpreters and also Programs 2260  
21 ApplicativeError functions handling and recovering from errors: A mnemonic to recall their signatures from their names 2216  
22 A Sighting of filterA in Typelevel Rite of Passage 2213  
23 Combinatorial Interview Problems with Backtracking Solutions - from Procedural to Functional Programming - Part 1 2191  
24 Point-free or Die - Tacit Programming in Haskell 2141  
25 Hand Rolled Applicative User Validation Code Kata 2117  
26 From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism - An Example 1945  
27 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 1934  
28 The Expression Problem Part 2 1913  
29 Compositionality and Category Theory 1783  
30 The Nature of Complexity in John Ousterhout’s Philosophy of Software Design 1761  
31 Folding Cheat Sheet #9 - List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 1752  
32 Combinatorial Interview Problems with Backtracking Solutions - from Procedural to Functional Programming - Part 2 1674  
33 Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Java 1652  
34 Drawing Heighway’s Dragon - Part 4 - Interactive and Animated Dragon Creation 1631  
35 AI Concepts - MCP Neurons 1595  
36 Imperative Bowling Kata - 20 Years On - Delegating Menial Tasks to AI Coding Tool 'Claude Code' 1572  
37 Scala Left Fold Parallelisation - Three Approaches 1502  
38 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 1 1448  
39 The Expression Problem Part 1 1430  
40 Drawing Heighway’s Dragon - Part 3 - Simplification Through Separation of Concerns - Rotation Without Matrix Multiplication 1415  
41 Computer Graphics in Java and Scala - Part 1 1398  
42 Algebraic Data Types for Data Oriented Programming - From Haskell and Scala to Java 1390  
43 Abstracting over Execution with Higher Kinded Types, and how to remain Purely Functional 1383  
44 Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Scala 1362  
45 From Scala Monadic Effects to Unison Algebraic Effects 1360  
46 The Sieve of Eratosthenes - Part 2 - Genuine versus Unfaithful Sieve 1359  
47 Test Doubles - Terminology, Definitions and Illustrations - with Examples - Part 1 1353  
48 Drawing Heighway’s Dragon - Part 2 - Recursive Function Simplification - From 2^n Recursive Invocations To n Tail-Recursive Invocations Exploiting Self-Similarity 1353  
49 Scala 3 enum for a terser Option Monad Algebraic Data Type 1321  
50 Functional Core and Imperative Shell - Game of Life Example - Haskell and Scala 1312  
51 Applicative Functor - Part 2 1300  
52 Folding Cheat Sheet #5 - Folding a list right and left using Cons and Nil results in the identity and reverse functions 1281  
53 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 3 1277  
54 Kleisli composition, flatMap, join, map, unit - implementation and interrelation - V2 updated for Scala 3 1275  
55 Game of Life - Polyglot FP - Haskell and Scala - Part 1 1273  
56 Definitions of Functional Programming 1262  
57 Computer Graphics in Java and Scala - Part 1b 1261  
58 Imperative Bowling Kata - 20 Years On - Delegating Menial Tasks to Github Copilot Chat - using Scala in IntelliJ IDEA 1252  
59 The Functional Programming Triad of Folding, Scanning and Iteration - A first example in Scala and Haskell 1245  
60 Nat, List and Option Monoids - From scratch - Combining and Folding - An example 1241  
61 The Sieve of Eratosthenes - Part 1 1227  
62 Folding Unfolded - Part 1 1216  
63 Kleisli Composition 1214  
64 Folding Unfolded - Part 2 1195  
65 Applicative Functor - Part 1 1190  
66 Sierpinski Triangle - Polyglot FP for Fun and Profit - Haskell and Scala 1169  
67 Monad Fact #1 1145  
68 The Debt Metaphor - Ward Cunningham in his 2009 YouTube video 1141  
69 A sighting of traverse_ in Practical FP in Scala 1133  
70 The Monad Fact Series 1126  
71 Monad Fact #4 1120  
72 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 2 1106  
73 Sum and Product Types - The Fruit Salad & Fruit Snack Example 1099  
74 ‘go-to’ general-purpose sequential collections - from Java To Scala 1092  
75 A sighting of sequence function in Practical FP in Scala 1092  
76 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 4 1086  
77 The Uniform Access Principle 1080  
78 Folding Unfolded - Part 5 1080  
79 Side by Side - Scala and Java Adaptations of Martin Fowler’s Javascript Refactoring Example 1077  
80 Folding Unfolded - Part 3 1075  
81 A sighting of traverseFilter and foldMap in Practical FP in Scala 1073  
82 Quicksort - a whistle-stop tour of the algorithm in five languages and four paradigms 1073  
83 Applicative Functor - Part 3 1069  
84 Arrive at monads by going from composition of pure functions to composition of effectful functions 1062  
85 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 1 1053  
86 Monad Fact #3 1046  
87 Functor Laws 1040  
88 Monad Fact #5 1039  
89 Fusing Transformations of Strict Scala Collections with Views 1031  
90 Function Applicative for Great Good of Palindrome Checker Function 1031  
91 Folding Unfolded - Part 4 1030  
92 Monad Fact #6 1028  
93 The aggregate function - from sequential and parallel folds to parallel aggregation 1021  
94 Folding Cheat Sheet Series Titles 1015  
95 Game of Life - Polyglot FP - Haskell and Scala - Part 3 1007  
96 Monad Fact #2 1006  
97 Game of Life - Polyglot FP - Haskell and Scala - Part 2 990  
98 Functional Effects - Part 1 987  
99 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2 964  
100 Monoids - Part 1 - With examples using Scalaz and Cats 961  
101 Functional Effects - Part 2 961  
102 Left and Right Folds - Comparison of a mathematical definition and a programmatic one 958  
103 Sequence and Traverse - Part 1 957  
104 Sequence and Traverse - Part 3 954  
105 Sequence and Traverse - Part 2 947  
106 State Monad 944  
107 Monoids - Part 2 - With examples using Scalaz and Cats 943  
108 Natural Transformations 921  
109 Writer Monad for logging execution of functions 908  
110 Ad hoc Polymorphism using Type Classes and Cats 901  
111 The Functional Programming Triad of fold, scan and iterate 833  
112 Monads do not Compose 795  
113 Function Composition - forward composition versus backward composition 782  
114 Functor Composition 768  
115 Monad Transformers - Part 1 764  
116 Addendum to `Monads do not Compose` 754  
117 Monad as Functor with pair of Natural Transformations 743  
118 Defining filter using (a) recursion (b) folding (c) folding with S, B and I combinators (d) folding with applicative functor and identity function 735  
119 De Morgan's Laws are Monoid Homomorphisms 708  
120 Year when lambda functions were introduced in various languages 704  
121 Symmetry in the interrelation of flatMap/foldMap/traverse and flatten/fold/sequence 691  
122 Non-strict functions, bottom, and Scala by-name parameters 617