Why not allow empty code blocks?

Steven D'Aprano steve at pearwood.info
Sun Jul 31 13:06:20 EDT 2016


On Sun, 31 Jul 2016 05:39 pm, Gregory Ewing wrote:

> Steven D'Aprano wrote:
>> It has always perplexed me that Lisp's prefix notation is held up as
>> the /sine qua non/ of elegance and power, while Forth is ignored if not
>> ridiculed.
> 
> The reason Lisp is easier to program in than Forth is not
> because of prefix vs. postfix. It's because in Lisp a function
> call is syntactically grouped together with its arguments,
> whereas in Forth it's not. Forth requires you to mentally
> simulate the stack to figure out what's operating on what.

That's generally not hard though, and arguably more natural than thinking
about higher-order functions, especially when you have higher-order stack
words (at least according to some):

https://news.ycombinator.com/item?id=1681174

You do make a good point but I don't think its the full story.

Forth does have variables, and constants, but only global variables. And of
course more modern languages like Factor have locals and even closures:

http://factor-language.blogspot.com.au/2007/08/named-local-variables-and-lexical.html

as well as garbage collection, currying/partial, objects, etc. There's a
real mystery why concatenative/postfix languages have received so little
attention from the academic community compared to prefix languages.



-- 
Steven
“Cheer up,” they said, “things could be worse.” So I cheered up, and sure
enough, things got worse.




More information about the Python-list mailing list