La coma se usa en el contexto de una lista con comillas invertidas (también conocida como cuasicotipada), que le permite evaluar algunas partes de la lista de forma selectiva. Vea también este hilo para ver un ejemplo de uso para backquoting.
Un par de ejemplos simples:
(setq a "a's value" b "b's value" c "c's value")
'(a b c) ; => (a b c)
`(,a b ,c) ; => ("a's value" b "c's value")
Las comas a las que se refiere están en una definición de macro que, a su vez, utiliza un comillas invertidas progn:
(defmacro add-annoying-arrows-advice (cmd alternatives)
`(progn
(add-to-list 'annoying-commands (quote ,cmd))
(put (quote ,cmd) 'aa--alts ,alternatives)
(defadvice ,cmd (before annoying-arrows activate)
(when annoying-arrows-mode
(aa--maybe-complain (quote ,cmd))))))
,cmddentro de la cita posterior le permite poner el valor de cmden lugar de el símbolo cmd.
prognsignifica que tienes que poner una coma delante de las cosas que quieres evaluar, sin importar cuán lejos estén anidadas. (El,cmdestá dentro de otra lista, no directamente dentro(progn).)