Functional Programming, How I started and Why?