GOPHERSPACE.DE - P H O X Y
gophering on alexkarle.com
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 :)