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

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