GNU Info

Info Node: (emacs-lisp-intro.info)Run a Program

(emacs-lisp-intro.info)Run a Program


Next: Making Errors Prev: Lisp Lists Up: List Processing
Enter node , (file) or (file)node

Run a Program
=============

   A list in Lisp--any list--is a program ready to run.  If you run it
(for which the Lisp jargon is "evaluate"), the computer will do one of
three things: do nothing except return to you the list itself; send you
an error message; or, treat the first symbol in the list as a command
to do something.  (Usually, of course, it is the last of these three
things that you really want!)

   The single apostrophe, `'', that I put in front of some of the
example lists in preceding sections is called a "quote"; when it
precedes a list, it tells Lisp to do nothing with the list, other than
take it as it is written.  But if there is no quote preceding a list,
the first item of the list is special: it is a command for the computer
to obey.  (In Lisp, these commands are called _functions_.)  The list
`(+ 2 2)' shown above did not have a quote in front of it, so Lisp
understands that the `+' is an instruction to do something with the
rest of the list: add the numbers that follow.

   If you are reading this inside of GNU Emacs in Info, here is how you
can evaluate such a list:  place your cursor immediately after the right
hand parenthesis of the following list and then type `C-x C-e':

     (+ 2 2)

You will see the number `4' appear in the echo area.  (In the jargon,
what you have just done is "evaluate the list."  The echo area is the
line at the bottom of the screen that displays or "echoes" text.)  Now
try the same thing with a quoted list:  place the cursor right after
the following list and type `C-x C-e':

     '(this is a quoted list)

You will see `(this is a quoted list)' appear in the echo area.

   In both cases, what you are doing is giving a command to the program
inside of GNU Emacs called the "Lisp interpreter"--giving the
interpreter a command to evaluate the expression.  The name of the Lisp
interpreter comes from the word for the task done by a human who comes
up with the meaning of an expression--who "interprets" it.

   You can also evaluate an atom that is not part of a list--one that is
not surrounded by parentheses; again, the Lisp interpreter translates
from the humanly readable expression to the language of the computer.
But before discussing this (Note: Variables), we will discuss what the
Lisp interpreter does when you make an error.


automatically generated by info2www version 1.2.2.9