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".
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe