
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@therning.org Jabber: magnus.therning@gmail.com http://therning.org/magnus