How to develop a functional mindset

I've been asked many times how to develop a functional mindset. It was hard to answer because it's difficult to know what kinds of mindsets people have. After pairing with with several people who had this question, I realized that the real problem was that they didn't know some of the basic tools for doing functional programming. Learn these three tools -- map, filter, and reduce-- and you'll be well on your way to developing a functional mindset.