
Imperative thinking is harder for humans than functional thinking. That is why astronauts need lists of instructions. When they use their natural intuition to solve problems, they are thinking functionally (and don't need a list to do it). Babies learn functional intuition immediately (pattern matching, lazy evaluation) to solve problems. Navigating around objects is hard for a robot but very basic for a baby. Following a prescribed path is basic for a robot but difficult for a child. Our brain is goal-oriented, not process-oriented. And BTW, a recipe book is a functional, not imperative, program. It is filled with recipes to be evaluated lazily. When it says, "make a white sauce, then chop onions and add to sauce", it means "you need a white sauce but I won't tell you how to make it. Look in the index if you need help (otherwise do it the way you already know how). And if you happen to have onions prechopped (or maybe onion flakes in the spice rack), don't ignore them and run to the store just because I told you to, just use what you have." The wording is imperative because schooling has distorted our natural functional/relational mode of thinking and devalued it. I for one think that turning the massively parallel, greedily optimizing, lazily evaluating, functional computer/relational database that is our brain into a von Neumann drone is a rather feeble accomplishment by any standard. Dan Weston Magnus Therning wrote:
Nneither way may be "natural", but imperative thinking is extremely common in society, I'd say much more than "functional" thinking. Just think of cooking recipes, IKEA instructions, all the algorithms tought in math classes in grade school. I doubt that we'll ever see functional thinking tought alongside imperative thinking in lower grades in school.
It could even be that the development of the human brain as we grow up reaches a state where it can handle imperative thinking before it can handle functional thinking (I bet there's a reason why astronauts have step-wise instructions rather than a set of "functions").
All I'm trying to say is that imperative thinking is so common outside of CS/math and we learn it so early on in life that we probably can consider it the "natural thinking way".