<div dir="ltr"><div dir="ltr">On Tue, Jun 25, 2024 at 2:19 PM Matti Nykänen <<a href="mailto:matti.johannes.nykanen@gmail.com">matti.johannes.nykanen@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto">In her book "The Programmer’s Brain" (Manning, 2021) Felienne Hermans (who knows Haskell) says, among other things, that reserved words like "while" and so on act as <i>cognitive anchors</i> which support our brains in learning programming languages by giving a familiar foothold in the early steps.</div><div dir="auto"><br></div><div dir="auto">Haskell has none of that: not even a strict division of syntactic structures for representing control vs. data - because it does not have it in its semantics either.</div><div dir="auto"><br></div><div dir="auto">What (if anything) does that portend to learning Haskell? To teaching it? To assessing the learner's progress?</div></div></blockquote></div><div><br></div><div>This is something we already know about: that Haskell is a very different language from procedural or OO languages. The cognitive anchors are very different. (It's also not new: in some OO languages, many of these are methods instead of keywords.)</div><div><br></div><div>Which asks a different question: just how fundamental are these anchors to begin with? Which is also a question in many other disciplines which are starting to expand beyond Western-dominated viewpoints. (For example, a fairly major assumption about how human brains process musical chords was recently struck down by careful research into non-Western musical motifs and how native listeners perceive them.)</div><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>brandon s allbery kf8nh</div><div><a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a></div></div></div></div></div></div>