Remix.run Logo
jasperry a day ago

Indeed it does, by showing how many different and confusing types of parsing rules are used in languages that don't have statement terminators. Needing a parser clever enough to interpret essentially a 2-d code format seems like unnecessary complexity to me, because at its core a programming language is supposed to be a formal, unambiguous notation. Not that I'm against readability; I think having an unambiguous terminating mark makes it easier for humans to read as well. If you want to make a compiler smart enough to help by reading the indentation, that's fine, but don't require it as part of the notation.

Non-statement-based (functional) languages can be excepted, but I still think those are harder to read than statement-based languages.

hajile a day ago | parent [-]

Lisps aren’t necessarily functional, but don’t need semicolons either.

II2II a day ago | parent | next [-]

The syntax of languages like Lisp and Forth are so fundamentally different that they don't need an explicit statement separator. You don't have to think about many other things either, or I should say you don't have to think about them in the same way. Consider how much simpler the order of operations is in those languages.

wvenable 21 hours ago | parent | prev [-]

Lisp has explicit "statement" terminators (just aren't semicolons)

hajile 13 hours ago | parent [-]

All the lisps I know of have only expressions (no statements).