Re:Introduction to Clojure
by jacquesm on Saturday October 17, 2009 @10:51AM
(#886983)
which suggests the use of a 'close all open parens' token to cut down on all the )))))) stuff at the end of a line, which can get really tedious, especially when editing in 'dumb' editors.
[ Parent
| on HN ]
That's not much help when you want to close all but one or two.
The solution is to use the right tool for the job. Emacs has something called paredit-mode that relieves you of having to type the closing parens.
paredit-mode
Yes! I can't do without it now. BTW somebody told me Paredit is a port of the old Interlisp structured editor.
There's also http://news.ycombinator.com/item?id=877386, if you haven't seen it.
I'm glad I took the plunge, too. At first, it seemed like a really bad idea -- far too awkward and unfamiliar for the minor advantage of automatically inserting closing parens. I kept at it mainly out of an attraction to the novel and quirky for long enough to discover that its biggest advantages aren't from not having to type ")" -- they're for things like barf, slurp, splice, and the S-expression-aware kill-line.
Whenever I'm programming in a non-Lisp language, I really miss those kinds of editor features that are enabled by having an idiot-simple syntax.
Someone should make a really good course to 'bridge' from being an experienced PHP, Perl, Java or Python programmer to that same level of competence using Clojure.
From my experience, the syntactic gap is wider than the semantic one. I suggest first, perhaps, translating Python into faux S-exprs (should be easy, given the indentation style). From there one might emphasize declarative vs. imperative, and functional as a subset of the former.