Skip to content

Latest commit

 

History

History
46 lines (37 loc) · 1.61 KB

README.md

File metadata and controls

46 lines (37 loc) · 1.61 KB

Functional programing

  • principles

    • functions
    • composition
    • types
  • when to call language functional?

  • supports

    1. function as first class concept
    2. immutability
    3. algebraic Data Types
  • functions

    • Total or Partial
    • Pure or Impure
  • Algebraic data type

    • map
    • flatMap / bind
  • OOP equivalent pattern in FP

    • copy slides
    • Demo

The birthday greetings kata

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.

Solution

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.

Resource

The following resources helped me in designing this solution: