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