Emacs Lisp (or elisp) is a dialect of Lisp, the LISt Processing Language.

The name is pretty self-explicative, considering that the you can find a lot of lists. Every list is defined by parentheses in which the first element is to be considered as the operator and the other ones are data passed to the first to do some kind of work.

(= 1 2)
;; => nil

This function, for example, verifies the identity of the two parameters passed and returns us a boolean (t for "true", nil for "false"). The empty list () is another kind of "false" type in lisp.

TODO translate chapters:

  • "What if we want a simple list of data?"
  • "cons"
  • "car"
  • "cdr"
  • "Code evaluation"
  • "Defining functions"
  • "Interactive functions"


Thanks to goto-char, you can move through the buffer.

Basic debugging§

Let's see some useful function:

  • message sends a string to be echoed on minibuffer;
  • boundp looks up for a variable and check if it's not void: if so, it returns the variable, either it returns nil;
  • fboundp is like the previous one, but it returns t instead of the variable.