p.enthalabs

LISPy things you can do in 64K bytes of core (2019)

t3x.org · Read Story HN original

Comments

> Note that programs were usually typed on as few lines as possible, because they had to be punched to punched cards or typed in at a teletype which echoed its input on paper.

I suspect this is the real reason behind "cram all the closing parentheses together on the same line" rule.

The only rationale I've seen online is in Taylor Campbell's style guide:

> Absolutely do not place closing brackets on their own lines.

> ...

> Rationale: The parentheses grow lonely if their closing brackets are all kept separated and segregated.

Yeah, right.

Anybody know anything about how this rule came to be?

This drives me nuts. I love LISP but refuse to pretend writing `)))))))` is reasonable.
Why are you writing ')))))' instead of your closing parenthesis being autogenerated. Sounds like a recipe for failure.
The 2026 version is: Why are you writing Lisp instead of your code being autogenerated. Sounds like a recipe for failure.
Automatic closing parenthesis is the first feature I disable in every IDE I use. I find it incredibly obnoxious.
))))))) isn't so bad, but )))))))) is just getting ridiculous. You have to draw the line somewhere
picolisp has an interesting solution to this. A single ']' will close all open )'s for that block of code
That has to be a nightmare for parsers lol
not really. it's just pop all of the stack and return to depth 0. you can still detect imbalanced parens, but i'm not sure how it affects the provenance question of where a missing one would point out in errors.
picolisp also has an interesting closing paren style by its author, with a space before closing parentheses if the open parenthesis is not on the same line:

  (- 1
    (+ 2
      (* 3 (/ 4 5)) ) )
My editor (emacs) shows how I close the scopes and it is easy enough. I'm not sure why writing

    )
      )
        )
          )
            )
would be so much better.
why would outer scope have more tabulation?
You don't read Lisp via the parentheses, but via the indentation. It's almost like Python but the (s and )s are for the computer to see.
Heh, I remember that and personally answering no when he complained about my paren formatting. I miss that channel.
This is somewhat confusing as there is a fairly well known toy Lisp interpreter called Lispy written by Peter Norvig

https://www.norvig.com/lispy.html