A Simple Case for Lisp Parenthesis ---------------------------------- Tue Nov 29 23:12:42 EST 2022 I was reading the Functions chapter of Crafting Interpreters today and was struck by the ugliness of chained function calls: foo()() This presumably calls `foo`, then calls the function foo returns. While it is arguable that it's maybe too subtle, the lisp equivalent is definitely easier on the eyes: ((foo)) Of course, the real power of lisp parenthesis is the fact that by reducing the syntax to.. a lack of syntax (code is data), it's easy to write metaprograms (code that writes code (also called macros)). But I think sometimes it's easier to appeal to aesthetics than power. Which would you prefer? bar(foo(1, 2)(5), baz(2))(5) ((bar ((foo 1 2) 5) (baz 2)) 5) Or even better: ((bar ((foo 1 2) 5) (baz 2)) 5) Maybe I've just been reading too many books on Scheme :)