4 ms·
One thing that puzzles me is that many people who complain about parenthesis are perfectly willing to deal with strange and inconvenient delimiter characters, s
by vnorilo 8y ago
One thing that puzzles me is that many people who complain about parenthesis are perfectly willing to deal with strange and inconvenient delimiter characters, such as semicolons and commas.
- flukus 8y agoTypically commas and semicolons don't have to be matched with open-commas and open-semicolons and you won't see several of them together like ';;;;'. There is a lot less ambiguity over what is ending than something like this example (worst case) from TFA: > (lambda _ (for-each make-file-writable (find-files "." ".*"))))))) ',' and ';' are far more convenient too, the sit right next to m and l, parenthesis require finger stretching and the shift key.
- rekado 8y agoI'm using paredit, so I'm never typing out closing parentheses. I'm just slurping and barfing s-expressions all over the place. I don't see parentheses but syntax units that my editor ensures remain correct. (I can understand the frustration if I was forced not to use Emacs, which has s-expression navigation commands, and if the use of paredit were forbidden.)
- Fice 8y agoIt's the great advantage of Lisp syntax that it supports structural editing in a complete and unified way, and paredit enables the leap from editing code by manipulating plain lines of characters to directly editing code as hierarchical structure.
- thibran 8y ago> Typically commas and semicolons don't have to be matched with open-commas and open-semicolons This is a problem that is non-existent when you use common tooling to write Lisp, like ParEdit or Smartparens. Since nobody would write C++ in Microsoft Word, nobody writes a lot of Lisp code without auto-matching parentheses tools.
- scentoni 8y agoWhat C and its descendents have instead is numerous repetitions of '\s}\n' to end if-then-elseif-else switch-case for while until functions methods classes and good luck figuring out which matches which when there's more than a screen between the beginning and the end of a block