GARTHWILSON wrote:
That should be quite a contrast, since Lisp has apparently even a lot more parentheses than BASIC, whereas Forth uses non except to comment-out portions of a line and still allow what's after the ")" to be seen.
Lisp ONLY has parenthesis, whereas other languages have semicolons, commas, colons, square brackets, braces, etc generally in the same quantity, or even greater when it comes to commas. I know in writing JavaScript, many lines end in messes such as );}))]; whereas in Lisp that would just be ))))))) which is much easier to close after writing a nested line. Consider the punctuation difference between [1, 2, 3] and (1 2 3). The latter is simpler punctuation-wise, and easier to parse. There's a little bit of helper syntax in Lisp that is implemented in character macros but not much, and it's all prefix.
Forth is interesting in that its punctuators are just regular symbols (colon, etc), and therefore need to be space delimited. Whereas (1 2 3) is readable syntax in Lisp (because declared punctuating characters such as parens self-delimit), to implement the same syntax in Forth would most straightforwardly be ( 1 2 3 ). The character reader in Lisp is also a first-class object whose behavior can be modified, so that the entire syntax can be changed to support foreign code or DSLs.
I've said in postings elsewhere that if you're into the fundamentals of programming and compilers, the two languages you absolutely should know are Lisp (as an unbounded, fundamental, simple AST system) and Forth (as an unbounded, fundamental, simple expression evaluation mechanism).