Quiet, you curmudgeon!
While undocumented functions and macros that don't observe referential integrity do have a real impact on how hard it is for someone unfamiliar with code to properly understand it, they are also useful to the author (or they wouldn't have been written in the first place [modulo how intelligent the author may be]). It's true that I'm not keen on it in code that I use written by others, but I have written lots of macros that engage in symbol 'magic' for my own use, because the way that I would name variables and functions is so predictable, that I don't see a need to make the choice explicit (and if necessary I can just macroexpand it).
And just to make it clear: I will beat you to death with my keyboard before I let you take away my AIF and AWHEN!
My own utility library is on github
, though my sql library isn't yet up there.
SCONC is a necessity to me, given how often I need to (CONCATENATE 'STRING ...). I could wish that they had put the functionality into the standard under some name that would fuzzy-complete in less keystrokes.
JOIN, similarly, is used all over the place, though it has no equivalent in the standard.
I'm a LOOP refusenik, so I have a number of macros which handle the common types of iteration, i.e.: WHILE, UNTIL, DOVECTOR, and some collector macros that let you build lists without needing to NREVERSE at the end.
My syntax-unifying BIND macro (that I have previously posted in this forum) has had a couple of new features that are driving its adoption in my code (namely automatic (DECLARE (IGNORE ...)) for variables named with a trailing hyphen, and a way to insert sanity testing code in the middle of what is conceptually sequential binding of variables without causing indentation hell).