<div dir="ltr">On Sat, Aug 23, 2008 at 8:41 AM, Johannes Waldmann <span dir="ltr">&lt;<a href="mailto:waldmann@imn.htwk-leipzig.de">waldmann@imn.htwk-leipzig.de</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
(*) that&#39;s the main problem I see with Hutton&#39;s book<br>
<a href="http://www.cs.nott.ac.uk/%7Egmh/book.html" target="_blank">http://www.cs.nott.ac.uk/~gmh/book.html</a> :<br>
it has &quot;Declaring types and classes&quot; as chapter 10 (of 13 total).<br>
I think that&#39;s way off - and it leaves readers (students)<br>
with the impression that declarative programming<br>
basically deals with (functions on) lists.<br>
This may have been true in the 70s/80s (LISP, Prolog),<br>
but it certainly shouldn&#39;t be true today.<br>
<br>
Recall the proverb &quot;Get your data structures correct first,<br>
and the rest of the program will write itself.&quot;<br>
(David Jones, cited in John Bentley: More Programming Pearls)<br>
I think this is independent of language and paradigm.<br>
<br>
</blockquote><div><br>If functions on lists isn&#39;t the thing, what is the thing? &quot;Data structures&quot; isn&#39;t a very satisfactory answer for a n00b like me, because it doesn&#39;t capture Haskell&#39;s distinctive. I&#39;ve had this same sense, but in a vague newbie way.<br>
<br>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&#39;s something else I can&#39;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.<br>
<br>Or I have no idea what I&#39;m talking about.<br><br>--<br>Darrin<br><br></div></div></div>