110 Decks Ordered By Thumbs Up Count - Highest First - Chse one - invert order

# Title Thumbs Up  
1 N-Queens Combinatorial Puzzle meets Cats 116  
2 Tagless Final Encoding - Algebras and Interpreters and also Programs 113  
3 Folding Cheat Sheet #1 - Folding over recursively defined data structures for natural numbers and lists 100  
4 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 1 98  
5 Definitions of Functional Programming 95  
6 The Functional Programming Triad of map, filter and fold 87  
7 Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid 85  
8 From Scala Monadic Effects to Unison Algebraic Effects 82  
9 Scala Left Fold Parallelisation - Three Approaches 80  
10 The Sieve of Eratosthenes - Part 2 - Genuine versus Unfaithful Sieve 78  
11 Functional Core and Imperative Shell - Game of Life Example - Haskell and Scala 77  
12 Computer Graphics in Java and Scala - Part 1b 74  
13 Function Applicative for Great Good of Leap Year Function 71  
14 Nat, List and Option Monoids - From scratch - Combining and Folding - An example 69  
15 Hand Rolled Applicative User Validation Code Kata 65  
16 Scala 3 enum for a terser Option Monad Algebraic Data Type 62  
17 From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism - An Example 59  
18 The Functional Programming Triad of Folding, Scanning and Iteration - A first example in Scala and Haskell 58  
19 Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Scala 53  
20 Compositionality and Category Theory 53  
21 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 52  
22 Quicksort - a whistle-stop tour of the algorithm in five languages and four paradigms 51  
23 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 3 50  
24 Folding Unfolded - Part 2 50  
25 Computer Graphics in Java and Scala - Part 1 50  
26 Refactoring: A First Example - Martin Fowler’s First Example of Refactoring, Adapted to Java 49  
27 Kleisli composition, flatMap, join, map, unit - implementation and interrelation - V2 updated for Scala 3 49  
28 A Sighting of filterA in Typelevel Rite of Passage 48  
29 Applicative Functor - Part 2 47  
30 Applicative Functor - Part 1 47  
31 Folding Cheat Sheet #6 - Left and right folds and tail recursion 43  
32 Folding Cheat Sheet #3 - The universal property of fold 42  
33 Monad Fact #1 41  
34 Monad Fact #3 41  
35 The Sieve of Eratosthenes - Part 1 41  
36 Algebraic Data Types for Data Oriented Programming - From Haskell and Scala to Java 41  
37 The Expression Problem Part 2 41  
38 Kleisli Composition 41  
39 Game of Life - Polyglot FP - Haskell and Scala - Part 1 41  
40 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 1 40  
41 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 2 40  
42 A sighting of traverseFilter and foldMap in Practical FP in Scala 40  
43 The Expression Problem Part 1 40  
44 Monad Laws Must Be Checked 39  
45 ‘go-to’ general-purpose sequential collections - from Java To Scala 38  
46 The Monad Fact Series 36  
47 Function Applicative for Great Good of Palindrome Checker Function 36  
48 Monad Fact #6 36  
49 Side by Side - Scala and Java Adaptations of Martin Fowler’s Javascript Refactoring Example 36  
50 Folding Unfolded - Part 1 36  
51 Folding Unfolded - Part 3 36  
52 The Uniform Access Principle 36  
53 Monad Fact #4 35  
54 Folding Cheat Sheet #2 - Programmatic and mathematical definitions of right fold and left fold 35  
55 Game of Life - Polyglot FP - Haskell and Scala - Part 3 35  
56 Folding Unfolded - Part 4 35  
57 Sum and Product Types - The Fruit Salad & Fruit Snack Example 35  
58 Applicative Functor - Part 3 35  
59 Monad Fact #2 35  
60 N-Queens Combinatorial Problem - Polyglot FP for Fun and Profit – Haskell and Scala - Part 4 35  
61 Functor Laws 35  
62 Monoids - Part 1 - With examples using Scalaz and Cats 34  
63 Arrive at monads by going from composition of pure functions to composition of effectful functions 34  
64 Natural Transformations 33  
65 Writer Monad for logging execution of functions 33  
66 Folding Cheat Sheet #7 - The three duality theorems of fold 33  
67 The aggregate function - from sequential and parallel folds to parallel aggregation 33  
68 Game of Life - Polyglot FP - Haskell and Scala - Part 2 33  
69 A sighting of sequence function in Practical FP in Scala 33  
70 Sierpinski Triangle - Polyglot FP for Fun and Profit - Haskell and Scala 32  
71 Fusing Transformations of Strict Scala Collections with Views 32  
72 Left and Right Folds - Comparison of a mathematical definition and a programmatic one 32  
73 Folding Cheat Sheet #8 - Folding with monoids 32  
74 Lambda Expressions and Java 8 - Lambda Calculus, Lambda Expressions, Syntactic Sugar, First Class Functions 32  
75 Monad Fact #5 31  
76 Functional Effects - Part 2 31  
77 A sighting of traverse_ in Practical FP in Scala 31  
78 Functional Effects - Part 1 30  
79 Sequence and Traverse - Part 2 30  
80 Folding Cheat Sheet #5 - Folding a list right and left using Cons and Nil results in the identity and reverse functions 30  
81 Folding Unfolded - Part 5 30  
82 Ad hoc Polymorphism using Type Classes and Cats 30  
83 Monoids - Part 2 - With examples using Scalaz and Cats 30  
84 Sequence and Traverse - Part 1 28  
85 Sequence and Traverse - Part 3 28  
86 State Monad 27  
87 Fibonacci Function Gallery - Part 2 26  
88 Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 2 26  
89 Monad Transformers - Part 1 24  
90 Monads do not Compose 24  
91 Fibonacci Function Gallery - Part 1 23  
92 Folding Cheat Sheet Series Titles 23  
93 The Debt Metaphor - Ward Cunningham in his 2009 YouTube video 20  
94 Addendum to `Monads do not Compose` 20  
95 Functor Composition 20  
96 Drawing Heighway’s Dragon - Part 1 - Recursive Function Rewrite - From Imperative Style in Pascal 64 To Functional Style in Scala 3 17  
97 Monad as Functor with pair of Natural Transformations 14  
98 Function Composition - forward composition versus backward composition 14  
99 Year when lambda functions were introduced in various languages 12  
100 Symmetry in the interrelation of flatMap/foldMap/traverse and flatten/fold/sequence 12  
101 The Open-Closed Principle - Part 2 - The Contemporary Version - An Introduction 11  
102 List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 11  
103 Drawing Heighway’s Dragon - Part 2 - Recursive Function Simplification - From 2^n Recursive Invocations To n Tail-Recursive Invocations Exploiting Self-Similarity 10  
104 De Morgan's Laws are Monoid Homomorphisms 10  
105 The Nature of Complexity in John Ousterhout’s Philosophy of Software Design 10  
106 The Open-Closed Principle - Part 1 - The Original Version 9  
107 Drawing Heighway’s Dragon - Part 3 - Simplification Through Separation of Concerns - Rotation Without Matrix Multiplication 8  
108 Drawing Heighway’s Dragon - Part 4 - Interactive and Animated Dragon Creation 6  
109 Folding Cheat Sheet #9 - List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate' 2  
110 Non-strict functions, bottom, and Scala by-name parameters 1