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

Magnus Therning magnus at therning.org
Wed Jan 31 19:09:16 EST 2007


On Wed, Jan 31, 2007 at 14:28:00 -0800, Dan Weston wrote:
>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).

Really?  May I ask what you base your reasoning on?

I don't base my reasoning on any "hard facts" at all, but just what I
consider to be reasonable.  E.g. I believe that thinking clearly in
stressful situations is difficult.  I draw a line, perhaps wrongly,
between space travel being on the extreme when it comes to stressful
situations and NASA using lists of instructions.  I think that suggests
that when a human finds herself with diminished brain activity it's
simply easier to follow a list of instructions.

This lead me to think that our ability to make up lists of instructions
develops first as we grow up.

>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.

AFAIU the human brain is amazing at processing information, especially
at throwing away unimportant information.  Couldn't the robot's
difficulty in moving around objects simply be a result of our inability
to mimick the brain's information processing?

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

Still not functional, sequential maybe, but not functional :-)

All you've pointed out is that a recipe can have calls to sub-routines
(make white sauce), and that we can use lookup tables to find
sub-routines.  You've also pointed out that we can do _some_
optimisations in the sequencing (e.g. pre-chopping onions), but the
sequence is clearly there in the recipe, note your use of the word
"then"?

I'm not sure how a "functional" recipe would look, maybe something like
this:

 White_sauce is a combination of ... .

 Chopped_onions is onions cut into small pieces.

 White_sauce_with_chopped_onions is the combination of white_sauce and
 chopped_onions.

>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.

Again, I'm not convinced.  I continue to think that _both_ ways are
learnt, but that our brain reaches a level where it can handle
imperative thinking before the level where it can handle functional
thinking.  Again, no "hard facts", just my imperfect observations and
imperfect reasoning.

/M

-- 
Magnus Therning                             (OpenPGP: 0xAB4DFBA4)
magnus at therning.org             Jabber: magnus.therning at gmail.com
http://therning.org/magnus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/haskell-cafe/attachments/20070201/373ce470/attachment.bin


More information about the Haskell-Cafe mailing list