Кома застосовується в контексті списку, що цитується назад (він же квазіцитований), що дозволяє вибірково оцінювати деякі частини списку. Дивіться також цю нитку для прикладу використання для зворотного кодування.
Кілька простих прикладів:
(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")
Коми, на які ви посилаєтеся, містяться у макрозначенні, яке, у свою чергу, використовує зворотне котирування 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))))))
,cmd
у зворотному котируванні можна поставити значення cmd
замість символу cmd
.
progn
означає, що ви повинні поставити кому перед речами, які ви хочете оцінити, незалежно від того, наскільки вона вкладена? (,cmd
Є в іншому списку, а не безпосередньо(progn)
.)