https://1saeed.dev/posts/functional-programming-2-examples/
Functional Programming - part 2 - Saeed Salehi