Exploring Functional Programming with Ruby