On Sat, Aug 23, 2008 at 8:41 AM, Johannes Waldmann <waldmann@imn.htwk-leipzig.de> wrote:
(*) that's the main problem I see with Hutton's book
http://www.cs.nott.ac.uk/~gmh/book.html :
it has "Declaring types and classes" as chapter 10 (of 13 total).
I think that's way off - and it leaves readers (students)
with the impression that declarative programming
basically deals with (functions on) lists.
This may have been true in the 70s/80s (LISP, Prolog),
but it certainly shouldn't be true today.

Recall the proverb "Get your data structures correct first,
and the rest of the program will write itself."
(David Jones, cited in John Bentley: More Programming Pearls)
I think this is independent of language and paradigm.


If functions on lists isn't the thing, what is the thing? "Data structures" isn't a very satisfactory answer for a n00b like me, because it doesn't capture Haskell's distinctive. I've had this same sense, but in a vague newbie way.

This also seems to reflect a growing dissatisfaction with the prelude. Back in the day lazy lists were the thing and the Prelude seems to largely reflect that. Now it's something else I can't possibly articulate. But I can definitely see it trying to replace a significant amount of prelude functionality. Witness that nobody loves strings anymore because ByteStrings are cooler. The stream/fusion lists are way cooler than the stock lists. etc.

Or I have no idea what I'm talking about.

--
Darrin