[Haskell-cafe] Re: Channel9 Interview: Software Composability and theFu ture of Languages

Dan Weston 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 
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".




More information about the Haskell-Cafe mailing list