I'm not arguing Vim over Emacs here, I just wanted to point out that Vim has excellent support for parenthesized expressions.
Interestingly, when I write procedural code such as C or Perl, I put a single brace on each line. For example:
if (condition)
{
...
}
That makes it easier for me to move whole blocks around.However, when I write functional code such as Lisp or Fexl, I tend not to do that. For example:
# Collect any matching entries at the front of the list.
\collect = (\match\list list end \head\tail
match head (item head (collect match tail)) end)
I think that's because I tend to keep all my Fexl expressions very short, building them up step by step.Also, Fexl uses ";" as a "right-pivot" operator. For example:
\collect = (\match\list list end \head\tail
match head (item head; collect match tail) end)
So in many cases I can avoid multiple right parentheses. The Clojure example in the article would become: \myfn-a = (\a\b zero? b a;
recur (afn (bfn (...)) a) (dec b))