Many of us programmers fumble at the idea of Functional Programming and yet many others who do not program for a living and experts in other fields often find it intuitive. Many physicists, bio-tech engineers and research labs embrace this seemingly bizarre programming culture.

Determined to understand this counter intuitive phenomenon, I started looking at the gap between the proponents and bystanders of FP.

Interestingly most programmers start by learning about processors, memory, machine language, data structures, etc. and then harness these machines by learning to instruct them. This learning locks their thought process into the imperative lane and they fumble on the idea of immutable data and lazy execution.

Whereas those coming from different domains looking for solutions to their problems find FP a natural fit for their needs as they only care about their problems and have no pre-installed conceptions about computing.