Functional Programming Concepts: Embracing Immutability and Referential Transparency — Programming Keynou