Última vez editado
Resumen: Further clarified ,@ description.
Modificado:
< ; ##`(a ,@b)##: another backquote operator: ,@ splices the list and refers to its elements; in this example the resulting list would contain the symbol 'a and the elements of list b (not b itself)
a
> ; ##`(a ,@b)##: another backquote operator: ##,@## splices the value of ##b## into the list whose car is ##a##. That is, the example expression here returns a list whose [[car]] is the [[symbol]] ##a## and whose [[cdr]] is the [[symbol value]] of ##b##. The value of ##b## is often a list, but it need not be.
Here are examples of notational symbols you might find in Emacs and EmacsLisp.
C-x C-s- this is a KeySequence, see EmacsKeyNotation.
\M-a, [(control f12)], (kbd "<f6>"), [\S-f12], [?\C-c ?v ?p]- different notations for describing key sequences in Emacs
77- a number
#o115- an octal number, in this case 77
#x4d- an hexadecimal number, in this case 77
U+004D- is used by Emacs to refer to an Unicode character, in this case M
?M- the character M. It is translated to a number
"M"- a string which contains the letter M
(a)- this is a function call to a function named a
'a- is a symbol named a. The apostrophe means quoting; it’s the same as using this function:
(quote a) a- a variable named a
'(a b)- a quoted list with two elements, a and b
`(a ,b)- see BackquoteSyntax. The backquote (`) is like the apostrophe, but items prefixed by a comma (,) are not quoted
`(a ,@b)- another backquote operator:
,@ splices the value of b into the list whose car is a. That is, the example expression here returns a list whose car is the symbol a and whose cdr is the symbol value of b. The value of b is often a list, but it need not be. '(2 . (4 5))- the dot is the cons operator (it joins
‘car’ and ‘cdr’ and creates a list). It is equivalent to (cons 2 '(4 5)). Both are the same as '(2 4 5) :a- this is called keyword. It is really a symbol which starts with a colon. You don’t need to quote it with ‘
#'a- this is used to quote a function. Just as
'argument expands into (quote argument), #'argument expands into (function argument) t- this is not a variable called t; it is a constant symbol which represents true
nil- constant symbol which represents false
;- the character used to comment text until the end of the line
(let* ((a 3)) a)- the asterisk (*) has no special meaning. This is just a normal function which happens to be called let* (just as it could have been called le*t)
(+ 2 3)- the + is just a normal function, which has the one-letter name +
,(+ 2 3)- don’t be confused; this is just the syntax that people in the EmacsChannel use to communicate with ErBot

^L- you might see this character inside a file. It is a page break, used to separate a buffer in logical sections. See function narrow-to-page
^M- this is the Emacs representation for the RET character | also CARRIAGE RETURN (CR)
*Messages*- some buffers have asterisks at their name’s start and end; these buffers are typically for system output (ex: log, errors, debug)
#<buffer *ielm*>- it denotes a buffer (not a buffer name) which you can get with
(get-buffer "*ielm*") #("abc") and #("abc" 0 3 (face bold))- propertized text strings. Try
(insert (propertize "abc" 'face 'bold)) on ‘normal-mode’ and you will see that text bold. #[(x) "^H\301\\\207" [x 3] 2]- byte-compiled function (see CompiledFile), in this case the result of
(byte-compile (lambda (x) (+ x 3))). That resulting function can then be called with ‘funcall’.
CategoryGlossary