Attempt to learn various functional programming concepts in ruby by re-implementing them.