[Haskell-cafe] Writing "Haskell For Dummies Or At Least For People Who Feel Like Dummies When They See The Word 'Monad'"

Kirsten Chevalier catamorphism at gmail.com
Mon Dec 11 10:49:29 EST 2006

On 12/11/06, Patrick Mulder <pemulder at yahoo.de> wrote:
> In my opinion it would be important to increase the
> understanding about "semantics" and "processes". And
> it would be good to introduce the concepts in a
> similar way as Profokiev introduces the sound of
> classical music in "Peter and the Wolf". If my
> suspicion is correct, functional programming would be
> very close to composing classical music (or concurrent
> algorithms and processes). Has anyone of you similar
> thoughts on music and programming ?  What are the
> basic ingredients for making abstractions (like in
> music rythm, keys, tempo, ...) ? It would be useful to
> express different ways of expression by explaining
> first "semantics" of processes and abstractions.

I love the analogy, though it's been at least eleven years since I
tried to compose any music. (Coincidentally, eleven years ago was when
I learned to program...)

I've often thought that reading code (if it's well-written code) is a
little like reading a poem, which of course is also a little like
listening to classical music. There's certainly a sense of rhythm
involved in how you choose variable names: that's why nobody likes
variable names like

I'm not sure what the analogy with keys would be. Maybe writing in a
point-free versus a pointed style is sort of like transposing a melody
into another key.

For the potential book, I definitely think a Peter-and-the-Wolf-like
idea is good. (The wolf would be unsafePerformIO, obviously.) Probably
any metaphors that assume any knowledge of music should be left for a
different piece of writing that assumes a different audience, but
pursuing it would be fun. I've been thinking a lot lately about how to
present computer science (and programming languages) to a popular
audience, too. I don't remember who originally posed the question of
"who's going to be the Carl Sagan of computer science?", but it's a
question somebody should try to answer. (The answer isn't "Douglas
Hofstadter", because obviously somebody needs to be out there
explaining why languages with static type systems are cool, too.)


Kirsten Chevalier* chevalier at alum.wellesley.edu *Often in error, never in doubt
"Are you aware that rushing toward a goal is a sublimated death wish? It's no
coincidence we call them 'deadlines'." -- Tom Robbins

More information about the Haskell-Cafe mailing list