Synchronize Our Dictionaries

30 Nov 2013

Recently I’ve been melting the butter stick of my brain against the griddle of Reginald Braithwaite, whose twin books on JavaScript and CoffeeScript as functional programming languages, JavaScript Allonge and CoffeeScript Ristretto have been tripping me out hard.

I bought them yesterday for their Black Friday half-off prices and loaded them into iBooks on my Mac and iPad (so glad to have a good ePub reader for Mac) after having their full-text-for-free web pages open for weeks in my browser, teasing me to read them while I do Ruby stuff all day.

In order to talk about how this works, we should agree on a few terms (you may already know them, but let’s check-in together and “synchronize our dictionaries”). The first x, the one in (x) ->, is an argument. The y in (y) -> is another argument. The second x, the one in -> x, is not an argument, it’s an expression referring to a variable. Arguments and variables work the same way whether we’re talking about (x) -> (y) -> x or just plain (x) -> x.

The particulars of this passage aren’t as important as that one phrase I plucked as the title of the blog post which I just really like a lot. Any kind of writing is basically just that. It’s as much about synchronizing your minds as it is synchronizing your language but that’s kind of the same thing.