Odio la forma en que elisp (no estoy seguro si LISP en general) maneja cadenas de documentos multilínea.
(defun foo ()
"This is
a multi
liner
docstring"
(do-stuff))
Seguro que desearía poder hacer algo como
(defun foo ()
(eval-when-compile
(concat
"This is\n"
"a multi\n"
"line\n"
"docstring"))
(do-stuff))
para que la sangría fuera consistente.
Desafortunadamente, eval-when-compile no hace el trabajo.
¿Alguien tiene alguna idea?
eval-when-compile
cita su resultado (para convertirlo en un valor en una expresión). Si fuera un poco más inteligente y solo citara su resultado cuando no es autocita, funcionaría.
defun
. El inconveniente de ese enfoque, y es muy importante, es que confundirá cualquier software (que no sea el compilador / intérprete elisp) que está analizando su código en busca dedefun
s.