[Haskell-cafe] Writing about Haskell, and the Lambda Sidebar

Michael Turner michael.eugene.turner at gmail.com
Sun Sep 19 01:00:23 UTC 2021


The debate over how much theory to give newbies seems endless, and
there are good arguments on both sides. Maybe the synthesis is to just
offer expository prose AND the mathematical approach, on the same
page, side by side.

Notational compression has its points. When I was in college and
getting a little impatient with an expository text, whether it was
something algorithmic or in the physical sciences, I'd often write the
tightest thing I could, using not much more than set-theoretic
notation. I even made a little game of it: could I almost completely
eliminate English words?

This gave my eye a much smaller space to range over. (Later, I heard
this recommended by my favorite CS professor, Bernard Mont-Reynaud, a
former student of Knuth's.) Although it's bad study practice to
rewrite the text, this seemed an allowable exception. Whatever the
philosophical problems of naive set theory, they didn't matter because
computers are pretty naive anyway. And you could abstract away machine
details; these were, in a way, still annoyingly present even back in
the day when it was common to publish algorithm papers with Algol in
them, which often still seemed too verbose to me. A few times, I
thought I could mark up my textbook with, "I have discovered a truly
concise way to express what this page says, and it CAN fit in the
margin!"

The debate over math-first-or-not is really an old problem: syllabus
sequencing. But syllabus sequencing isn't quite learning sequencing.
To be sure, you really do need to fully learn some concepts as the
foundation for later ones. But psychologists have found that a feeling
of "not quite getting it" isn't necessarily bad. It can even be good.
Strangely, concepts can finally gel long after you've convinced
yourself that they just overflowed from your overfilled brain. It's
been suggested that a mild state of anxiety actually helps absorption
of concepts at a subconscious level, after which they start to float
back up and swim at your command when you need to apply them.

So instead of arguing where the lambda calculus chapter should go (or
anything else mathematical for that matter) how about putting the math
in sidebars? When I was in college, I probably would have ended up in
the Haskell text sidebar out of impatience. These days, with math
study literally decades behind me, I might instead look over on that
side with a little anxiety, and often press on impatiently in the main
text after thinking, "I didn't get that." But that wouldn't mean I
wasn't absorbing anything. I might even be learning faster, in a
longer-term view. Because learning gels at different levels at
different times, under different pressures, it might even be more
efficient theory-acquisition for me than a solidly mathematical
chapter, no matter where in the text it appeared.

Regards,
Michael Turner
Executive Director
Project Persephone
1-25-33 Takadanobaba
Shinjuku-ku Tokyo 169-0075
Mobile: +81 (90) 5203-8682
turner at projectpersephone.org

Understand - http://www.projectpersephone.org/
Join - http://www.facebook.com/groups/ProjectPersephone/
Donate - http://www.patreon.com/ProjectPersephone
Volunteer - https://github.com/ProjectPersephone

"Love does not consist in gazing at each other, but in looking outward
together in the same direction." -- Antoine de Saint-Exupéry


More information about the Haskell-Cafe mailing list