124 Decks - Latest First - Chse 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