-
principles
- functions
- composition
- types
-
when to call language functional?
-
supports
- function as first class concept
- immutability
- algebraic Data Types
-
functions
- Total or Partial
- Pure or Impure
-
Algebraic data type
- map
- flatMap / bind
-
OOP equivalent pattern in FP
- copy slides
- Demo
A refactoring exercise to learn about dependency inversion and hexagonal architecture. Inspired by a blog post from Matteo Vaccari. You can find the original repo here.
I decided to solve the problem in a functional programming style using the Kotlin programming language and Arrow, a functional companion to the Kotlin standard library.
The following resources helped me in designing this solution: