
Hello Benjamin, Saturday, January 27, 2007, 12:00:11 AM, you wrote:
and support operational reasoning, i.e. creating and understanding programs by mentally modeling their execution on a machine. This form of reasoning appeals to 'common sense', it is familiar to almost all (even completely un-educated) people and is therefore easier acessible to them.
greatly simplifies denotional resp. equational reasoning(**), i.e. to understand a program as an abstract formula with certain logical properties; an abstract entity in its own right, independent of the possibility of execution on a machine. This way of thinking is less familiar to most people
i think you are completely wrong! FP way is to represent everything as function, imperative way is to represent everything as algorithm. there is no "natural thinking way", the only think that matters is *when* student learned the appropriate concept. let's look - in my college, the notion of algorithm was introduced at the 1st course *before* any other programming courses. we even studied Turing machine as an abstract algorithm executor just imagine that we will learn Church's machine instead! and even this don't required - notion of function is scholar's one! i'm pretty sure that Haskell may be learned at 1st school class, together with mathematics itself, and used as natural way to write expressions to evaluate all the problem of learning FP paradigm for college-finished programmers is just that their brains are filled with imperative paradigm and they can't imagine non-imperative programming. it was hard for me, too :) we should change college programs to make FP programming available for the masses -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com