Functional Programming Explained In 5 Minutes With Examples