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 10747  
2 N-Queens Combinatorial Puzzle meets Cats 5520  
3 The Open-Closed Principle - Part 1 - The Original Version 4873  
4 Folding Cheat Sheet #6 - Left and right folds and tail recursion 4741  
5 Monad Laws Must Be Checked 4137  
6 Lambda Expressions and Java 8 - Lambda Calculus, Lambda Expressions, Syntactic Sugar, First Class Functions 3856  
7 Folding Cheat Sheet #1 - Folding over recursively defined data structures for natural numbers and lists 3678  
8 Fibonacci Function Gallery - Part 2 2985  
9 List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 2934  
10 Drawing Heighway’s Dragon - Part 1 - Recursive Function Rewrite - From Imperative Style in Pascal 64 To Functional Style in Scala 3 2856  
11 Folding Cheat Sheet #7 - The three duality theorems of fold 2740  
12 The Functional Programming Triad of map, filter and fold 2723  
13 Fibonacci Function Gallery - Part 1 2650  
14 The Bowling Game - From Imperative to Functional Programming - Part 1 2645  
15 Function Applicative for Great Good of Leap Year Function 2644  
16 Folding Cheat Sheet #2 - Programmatic and mathematical definitions of right fold and left fold 2545  
17 Folding Cheat Sheet #3 - The universal property of fold 2537  
18 The Open-Closed Principle - Part 2 - The Contemporary Version - An Introduction 2390  
19 Folding Cheat Sheet #8 - Folding with monoids 2324  
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 2189  
24 Point-free or Die - Tacit Programming in Haskell 2139  
25 Hand Rolled Applicative User Validation Code Kata 2115  
26 From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism - An Example 1942  
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 1932  
28 The Expression Problem Part 2 1908  
29 Compositionality and Category Theory 1783  
30 The Nature of Complexity in John Ousterhout’s Philosophy of Software Design 1759  
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 1672  
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 1630  
35 AI Concepts - MCP Neurons 1593  
36 Imperative Bowling Kata - 20 Years On - Delegating Menial Tasks to AI Coding Tool 'Claude Code' 1570  
37 Scala Left Fold Parallelisation - Three Approaches 1500  
38 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 1 1447  
39 The Expression Problem Part 1 1430  
40 Drawing Heighway’s Dragon - Part 3 - Simplification Through Separation of Concerns - Rotation Without Matrix Multiplication 1414  
41 Computer Graphics in Java and Scala - Part 1 1396  
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 1380  
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 1359  
46 The Sieve of Eratosthenes - Part 2 - Genuine versus Unfaithful Sieve 1358  
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 1352  
49 Scala 3 enum for a terser Option Monad Algebraic Data Type 1320  
50 Functional Core and Imperative Shell - Game of Life Example - Haskell and Scala 1308  
51 Applicative Functor - Part 2 1299  
52 Folding Cheat Sheet #5 - Folding a list right and left using Cons and Nil results in the identity and reverse functions 1279  
53 Kleisli composition, flatMap, join, map, unit - implementation and interrelation - V2 updated for Scala 3 1274  
54 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 3 1272  
55 Game of Life - Polyglot FP - Haskell and Scala - Part 1 1269  
56 Definitions of Functional Programming 1262  
57 Computer Graphics in Java and Scala - Part 1b 1260  
58 Imperative Bowling Kata - 20 Years On - Delegating Menial Tasks to Github Copilot Chat - using Scala in IntelliJ IDEA 1249  
59 The Functional Programming Triad of Folding, Scanning and Iteration - A first example in Scala and Haskell 1244  
60 Nat, List and Option Monoids - From scratch - Combining and Folding - An example 1239  
61 The Sieve of Eratosthenes - Part 1 1226  
62 Folding Unfolded - Part 1 1215  
63 Kleisli Composition 1213  
64 Folding Unfolded - Part 2 1195  
65 Applicative Functor - Part 1 1189  
66 Sierpinski Triangle - Polyglot FP for Fun and Profit - Haskell and Scala 1168  
67 Monad Fact #1 1145  
68 The Debt Metaphor - Ward Cunningham in his 2009 YouTube video 1140  
69 A sighting of traverse_ in Practical FP in Scala 1133  
70 The Monad Fact Series 1125  
71 Monad Fact #4 1119  
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 1098  
74 ‘go-to’ general-purpose sequential collections - from Java To Scala 1092  
75 A sighting of sequence function in Practical FP in Scala 1091  
76 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 4 1086  
77 The Uniform Access Principle 1079  
78 Folding Unfolded - Part 5 1078  
79 Side by Side - Scala and Java Adaptations of Martin Fowler’s Javascript Refactoring Example 1075  
80 Folding Unfolded - Part 3 1073  
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 1072  
83 Applicative Functor - Part 3 1068  
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 1052  
86 Monad Fact #3 1042  
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 1028  
92 Monad Fact #6 1027  
93 The aggregate function - from sequential and parallel folds to parallel aggregation 1020  
94 Folding Cheat Sheet Series Titles 1013  
95 Game of Life - Polyglot FP - Haskell and Scala - Part 3 1006  
96 Monad Fact #2 1005  
97 Game of Life - Polyglot FP - Haskell and Scala - Part 2 989  
98 Functional Effects - Part 1 986  
99 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2 964  
100 Functional Effects - Part 2 961  
101 Monoids - Part 1 - With examples using Scalaz and Cats 960  
102 Left and Right Folds - Comparison of a mathematical definition and a programmatic one 957  
103 Sequence and Traverse - Part 1 955  
104 Sequence and Traverse - Part 3 953  
105 Sequence and Traverse - Part 2 944  
106 State Monad 944  
107 Monoids - Part 2 - With examples using Scalaz and Cats 942  
108 Natural Transformations 920  
109 Writer Monad for logging execution of functions 907  
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 781  
114 Functor Composition 767  
115 Monad Transformers - Part 1 763  
116 Addendum to `Monads do not Compose` 753  
117 Monad as Functor with pair of Natural Transformations 742  
118 Defining filter using (a) recursion (b) folding (c) folding with S, B and I combinators (d) folding with applicative functor and identity function 734  
119 De Morgan's Laws are Monoid Homomorphisms 707  
120 Year when lambda functions were introduced in various languages 702  
121 Symmetry in the interrelation of flatMap/foldMap/traverse and flatten/fold/sequence 688  
122 Non-strict functions, bottom, and Scala by-name parameters 617