# julia --lisp
; _
; |_ _ _ |_ _ | . _ _
; | (-||||_(_)|__|_)|_)
;-------------------|----------------------------------------------------------
> (apply cons '(1 2))
(1 . 2)
[1]: https://github.com/JeffBezanson/femtolisp[3]: https://github.com/JuliaLang/julia/blob/d76a30a7178dd1e9b744...
Another language that tried this with a syntax change was Dylan. People interested in that can try OpenDylan.
I've seen other proposals online, but they felt untested to me. Leave out either "|" or "$" and the above system gets clumsy. I check for the equivalent of "$" in other proposals exactly as I check for marrow in a stew recipe: Did they really think this through?
One can't change existing habits. An idea that appeals to me: Write a Lisp preprocessor for Rust, and happen to use this syntax.
S-expressions enable homo-iconic macros and make compile-time computing super easy! I spent 35 years programming in C and C-like languages and then developed my own Common Lisp implementation (http://github.com/clasp-developers/clasp.git) - the only Common Lisp that interoperates with C++ and uses llvm as the backend. When I started with lisp I wrestled with the syntax and sweet-expressions and just decided to let it go. Now I've found language love all over again!
In a world that runs on Javascript, nobody should be able to complain about a few measly parentheses.
Obligatory relevant XKCD comic: https://xkcd.com/297/
Just using make out of the box shows 44k so not sure where the 512k is coming from?
Using my "standard" little gcc flags:
-Os -s -Wall -Wl,-z,norelro
it comes out to 19k on gcc 8.2.1 on x86-64.