[plt-scheme] Paren Paralysis Sufferers Unite

From: Synx (plt at synx.us.to)
Date: Thu Oct 29 13:28:19 EDT 2009

Really the only problem I have with parentheses is one of lexical
context. I personally have a hard time maintaining a stack of context in
my head, so when I reach a ) I can't easily tell what context I just
returned to. Matching the closing parentheses /when I type it/ helps,
but if I'm just looking at code that says

(if (test? a)
  (if (test? b)
    ((let ((c (+ a b)))
       (lambda (d)
         (+ c d)))

I have no clue what that last 'b' is applied to. (it breaks down to (+ a
b b), right?) So when I encounter ))))))))) (and I frequently do) I have
to manually count the parentheses and track them back _with my finger_
to find where to insert a new cond clause for instance. Even if I'm
looking at my own code!

It's really frustrating. :(

Posted on the users mailing list.