Writing about Haskell, and the Lambda Sidebar

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@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
participants (1)
-
Michael Turner