]> code.delx.au - gnu-emacs/blobdiff - lispref/intro.texi
*** empty log message ***
[gnu-emacs] / lispref / intro.texi
index cd87735a6f401ea416c900e6bf9a8f97fe87c0df..7e1b6155b3545ab5a98a5dfb522ec05e70707b76 100644 (file)
@@ -1,13 +1,10 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2002
-@c   Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2002, 2003, 2004,
+@c   2005, 2006 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/intro
 
-@c Versino of the manual.
-@set VERSION 2.9
-
 @node Introduction, Lisp Data Types, Top, Top
 @comment  node-name,  next,  previous,  up
 @chapter Introduction
@@ -38,7 +35,8 @@ Lisp that have counterparts in many programming languages, and later
 chapters describe features that are peculiar to Emacs Lisp or relate
 specifically to editing.
 
-  This is edition @value{VERSION}.
+  This is edition @value{VERSION} of the GNU Emacs Lisp Reference
+Manual, corresponding to Emacs version @value{EMACSVER}.
 
 @menu
 * Caveats::             Flaws and a request for help.
@@ -165,7 +163,7 @@ person reading this manual, are thought of as ``the programmer'' and are
 addressed as ``you''.  ``The user'' is the person who uses Lisp
 programs, including those you write.
 
-@cindex fonts
+@cindex fonts in this manual
   Examples of Lisp code are formatted like this: @code{(list 1 2 3)}.
 Names that represent metasyntactic variables, or arguments to a function
 being described, are formatted like this: @var{first-number}.
@@ -189,17 +187,17 @@ readers.  After the Lisp reader has read either @samp{()} or @samp{nil},
 there is no way to determine which representation was actually written
 by the programmer.
 
-  In this manual, we use @code{()} when we wish to emphasize that it
-means the empty list, and we use @code{nil} when we wish to emphasize
+  In this manual, we write @code{()} when we wish to emphasize that it
+means the empty list, and we write @code{nil} when we wish to emphasize
 that it means the truth value @var{false}.  That is a good convention to use
 in Lisp programs also.
 
 @example
 (cons 'foo ())                ; @r{Emphasize the empty list}
-(not nil)                     ; @r{Emphasize the truth value @var{false}}
+(setq foo-flag nil)           ; @r{Emphasize the truth value @var{false}}
 @end example
 
-@cindex @code{t} and truth
+@cindex @code{t}, uses of
 @cindex true
   In contexts where a truth value is expected, any non-@code{nil} value
 is considered to be @var{true}.  However, @code{t} is the preferred way
@@ -211,14 +209,19 @@ choosing, use @code{t}.  The symbol @code{t} always has the value
   In Emacs Lisp, @code{nil} and @code{t} are special symbols that always
 evaluate to themselves.  This is so that you do not need to quote them
 to use them as constants in a program.  An attempt to change their
-values results in a @code{setting-constant} error.  The same is true of
-any symbol whose name starts with a colon (@samp{:}).  @xref{Constant
+values results in a @code{setting-constant} error.  @xref{Constant
 Variables}.
 
+@defun booleanp object
+Return non-nil iff @var{object} is one of the two canonical boolean
+values: @code{t} or @code{nil}.
+@end defun
+
 @node Evaluation Notation
 @subsection Evaluation Notation
 @cindex evaluation notation
 @cindex documentation notation
+@cindex notation
 
   A Lisp expression that you can evaluate is called a @dfn{form}.
 Evaluating a form always produces a result, which is a Lisp object.  In
@@ -263,12 +266,13 @@ evaluating the function @code{eval-region}), the printed text is
 displayed in the echo area.
 
   Examples in this manual indicate printed text with @samp{@print{}},
-irrespective of where that text goes.  The value returned by evaluating
-the form (here @code{bar}) follows on a separate line.
+irrespective of where that text goes.  The value returned by
+evaluating the form (here @code{bar}) follows on a separate line with
+@samp{@result{}}.
 
 @example
 @group
-(progn (print 'foo) (print 'bar))
+(progn (prin1 'foo) (princ "\n") (prin1 'bar))
      @print{} foo
      @print{} bar
      @result{} bar
@@ -356,11 +360,11 @@ indicates that the subsequent arguments may be omitted (omitted
 arguments default to @code{nil}).  Do not write @code{&optional} when
 you call the function.
 
-  The keyword @code{&rest} (which must be followed by a single argument
-name) indicates that any number of arguments can follow.  The single
-following argument name will have a value, as a variable, which is a
-list of all these remaining arguments.  Do not write @code{&rest} when
-you call the function.
+  The keyword @code{&rest} (which must be followed by a single
+argument name) indicates that any number of arguments can follow.  The
+single argument name following @code{&rest} will receive, as its
+value, a list of all the remaining arguments passed to the function.
+Do not write @code{&rest} when you call the function.
 
   Here is a description of an imaginary function @code{foo}:
 
@@ -451,9 +455,9 @@ from @var{body}, which includes all remaining elements of the form.
 @cindex variable descriptions
 @cindex option descriptions
 
-  A @dfn{variable} is a name that can hold a value.  Although any
-variable can be set by the user, certain variables that exist
-specifically so that users can change them are called @dfn{user
+  A @dfn{variable} is a name that can hold a value.  Although nearly
+all variables can be set by the user, certain variables exist
+specifically so that users can change them; these are called @dfn{user
 options}.  Ordinary variables and user options are described using a
 format like that for functions except that there are no arguments.