My exploration of Functional Programming