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

Posted by andsoitis 3 days ago

Counter70Comment17OpenOriginal

Comments

Comment by sudahtigabulan 2 days ago

> 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?

Comment by a96 1 day ago

Heh, I remember that and personally answering no when he complained about my paren formatting. I miss that channel.

Comment by weknowbetter 2 days ago

This drives me nuts. I love LISP but refuse to pretend writing `)))))))` is reasonable.

Comment by uncletaco 2 days ago

Why are you writing ')))))' instead of your closing parenthesis being autogenerated. Sounds like a recipe for failure.

Comment by aezart 1 day ago

Automatic closing parenthesis is the first feature I disable in every IDE I use. I find it incredibly obnoxious.

Comment by bitwize 1 day ago

The 2026 version is: Why are you writing Lisp instead of your code being autogenerated. Sounds like a recipe for failure.

Comment by greenbit 2 days ago

))))))) isn't so bad, but )))))))) is just getting ridiculous. You have to draw the line somewhere

Comment by corroclaro 1 day ago

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.

Comment by NooneAtAll5 1 day ago

why would outer scope have more tabulation?

Comment by a-french-anon 1 day ago

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.

Comment by isr 2 days ago

picolisp has an interesting solution to this. A single ']' will close all open )'s for that block of code

Comment by mfex 1 day ago

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)) ) )

Comment by packetlost 2 days ago

That has to be a nightmare for parsers lol

Comment by ashkankiani 1 day ago

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.

Comment by packetlost 36 minutes ago

It depends on if you have parens for (explicit) modules like some Lisps do.

Comment by andsoitis 2 days ago

[flagged]

Comment by hujun236 2 days ago

[flagged]

Comment by tomhow 2 days ago

Previously...

LISPy things you can do in 64K bytes of core (2019) - https://news.ycombinator.com/item?id=44490099 - July 2025 (4 comments)

Comment by matt_daemon 2 days ago

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