(the number (+ 35 7))
is a lot less clunky than (+ 35 7)@Numeric (the number (+ 35 7))
is a lot less clunky than (+ 35 7)@Numeric (defun foo (&aux bar baz)
(setq bar (quux)
baz (xyzzy))
...)First you will usually want to write small chunks of code, instead of a large soup.
Second, you can make intentional decisions with your use of newlines in order to highlight specific aspects of the code.
I find clojure more readable than most other languages… However, bad code stands out horribly (which is actually great if you have at least one experienced engineer in the team- I’d argue there’s nothing worse than bad code that looks normal). Just like anything else, writing good lisp takes some skill.
Your specific editor and its configuration will also have a big impact on your experience.
It's like Unix pipes for functions:
(~> "hello"
(string-ref 1)
(char->integer))[1] https://github.com/ruricolist/serapeum/blob/master/control-f...
[2] https://github.com/ruricolist/serapeum/blob/master/REFERENCE...
Whatever is gained in exchange for this additional syntactical complexity may not be valued in the same way by everyone.
So that almost certainly explains that reaction.
(funcall #~s:gi/abc/def/ "Testing abc testing abc")
to the five lines of the equivalent made with macros, function calls, and keyword arguments.I know all the problems with reader extensions, really. I understand being cautious. But at some point, you gotta wonder: what's the point of the programmable reader when you're unwilling to add programs to it?
[1] Let over Lambda: https://letoverlambda.com/index.cl/guest/chap4.html
1> (regsub #/abc/ "def" "Testing abc testing abc")
"Testing def testing def"