[Haskell-cafe] Re: Channel9 Interview: Software Composability
and theFu ture of Languages
westondan at imageworks.com
Wed Jan 31 17:28:00 EST 2007
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
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.
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".
More information about the Haskell-Cafe