
Hello Graham, Monday, May 09, 2005, 2:45:06 PM, you wrote: GK> When I read the above, I found myself thinking of two styles of Haskell GK> programming: on one hand there are some, many on these mailing lists, but GK> I pick Oleg as an exemplar, who continue to baffle me with the amazing GK> tricks they can do with (say) the Haskell type system. And there are GK> "ordinary programmers" (like myself) who want to use Haskell's small core GK> and (not-so-small) type system to find more elegant ways to write GK> application software (e.g. http://www.cs.kent.ac.uk/projects/vital/ - if IO GK> were added). I find that higher order functions and currying provide GK> powerful tools to isolate different aspects of a program's functionality, GK> but I'm not sure I'd want to explain them to a complete novice programmer. imho, this theoretical foundations of Haskell power just don't need to be explained explicitly. Haskell function just can be applied to part of its argumnets and we use this very often. small and easy to understand example are "add2 = map (+2)" which at the same time use parially-applied function and return such function. it's a problem of other languages advocates to explain how partial application can be emulated in their ugly languages :) and about selecting first language to teach programming. if one needs to learn concept of controlling computer with help of programmng language, it's better imho to use dynamic language with minimum declarations, such as Ruby (or even Logo :) I think that runtime error messages given in terms of VALUES instead of compile-time error messages given in terms of TYPES are easier to understand for novice. also, strict regulations on datatypes are needed for professional program development, but will be just needless complication for learning concept of programming itself. even for mathematician Ruby will be a good choice on the other side, to learn DISCIPLINE of programming, Haskell with all its strictness will be a very good instrument in the old times the same way Pascal was used to teaching future programmers and Basic for all others -- Best regards, Bulat mailto:bulatz@HotPOP.com