Common Lisp Quick Reference (2018)
clqr.boundp.org
clqr.boundp.org
Friendly reminder about printing services like this one[1] that will print and ship a PDF to you.
Instead we have Perl. It's not bad and fulfills many of the same criteria, but it's also not quite as elegant.
The linked CL reference looks very nice, BTW.
Interesting. Why particularly a glue language? Just because it's the ultimate language and thus by definition also the ultimate glue language or is there something more specific?
so you can write perl in a kinda-sexp style if you really want to (no one does, which tells you something)...but you get a kinda-sexp built-in syntax for hashes whereas lisps make you construct them with bolted on functions
This has some advantages:
1. The built in functions generally are very efficient and don't have many edge-case gotchas.
2. You don't have to worry about which version of a library function to use, i.e. no dependency hell.
3. The above is true for every CL implementation, from any supplier.
It also has some disadvantages: When designing a language you can never predict all the functionality people will need. Useful things like networking and multithreading and package management were not included in the CL standard. Libraries for the missing pieces now exist to fix those shortcomings.
It would be nice if such advantages could be ported to user defined libraries, or if built in functions could be extended (by making them generic and adding methods, say) without losing these advantages. Many of the features in Common Lisp are there because they helped implement things in the standard; it would be nice if that principle could be extended. The ultimate goal would be (in some standardized way) to expose to a library writer all the mechanisms that could make the built ins particularly effective.
I've mentioned this before, but I'd really like to see Strandh's Call-site optimization implemented, so generic functions could be both highly locally optimizable, yet retain their dynamicity.
For now with CL we can program in the past and reuse some code from 30 years ago. Changes will need to reflected in implementations, libraries and community standards. Some stuff would need changing the existing, others not so much. Example: Due to meta-programmability something like the Common Lisp Object System was implemented 95% in the language itself - the remaining 5% largely needed to be implementation specific things like changing the type system. Other stuff like 'threading' or 'foreign function interface' would need more work - but they exist already in implementations and libraries.
they don't call it Lisp because it came from Scheme but they wisely realized the first step to making changes is to stop calling it Scheme otherwise purists will just rain fire on it and insist on living in the past
from a practical perspective it seems perfectly safe and reasonable to say Racket is Lisp2023
otherwise maybe elisp? it is by far the most important thing with "lisp" in its name in 2023
Also worth noting is Hy, a sort of alternate Lisp syntax for Python. http://hylang.org/