"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "man/lispref/intro.texi" between
xemacs-21.4.22.tar.gz and xemacs-21.4.24.tar.bz2

About: XEmacs (an alternative to GNU Emacs) is a highly customizable open source text editor and application development system (current version).

intro.texi  (xemacs-21.4.22):intro.texi  (xemacs-21.4.24.tar.bz2)
@c -*-texinfo-*- @c -*-texinfo-*-
@c This is part of the XEmacs Lisp Reference Manual. @c This is part of the XEmacs Lisp Reference Manual.
@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. @c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions. @c See the file lispref.texi for copying conditions.
@setfilename ../../info/intro.info @setfilename ../../info/intro.info
@node Copying, Introduction, Top, Top @node Copying, Introduction
@unnumbered GNU GENERAL PUBLIC LICENSE @unnumbered GNU GENERAL PUBLIC LICENSE
@center Version 2, June 1991 @center Version 2, June 1991
@display @display
Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA 675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@end display @end display
skipping to change at line 403 skipping to change at line 403
Ty Coon, President of Vice Ty Coon, President of Vice
@end group @end group
@end smallexample @end smallexample
This General Public License does not permit incorporating your program into This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General library. If this is what you want to do, use the GNU Library General
Public License instead of this License. Public License instead of this License.
@node Introduction, Packaging, Copying, Top @node Introduction, , Copying
@chapter Introduction @chapter Introduction
Most of the XEmacs text editor is written in the programming Most of the XEmacs text editor is written in the programming
language called XEmacs Lisp. You can write new code in XEmacs Lisp and language called XEmacs Lisp. You can write new code in XEmacs Lisp and
install it as an extension to the editor. However, XEmacs Lisp is more install it as an extension to the editor. However, XEmacs Lisp is more
than a mere ``extension language''; it is a full computer programming than a mere ``extension language''; it is a full computer programming
language in its own right. You can use it as you would any other language in its own right. You can use it as you would any other
programming language. programming language.
Because XEmacs Lisp is designed for use in an editor, it has special Because XEmacs Lisp is designed for use in an editor, it has special
skipping to change at line 436 skipping to change at line 436
This is edition 3.3. This is edition 3.3.
@menu @menu
* Caveats:: Flaws and a request for help. * Caveats:: Flaws and a request for help.
* Lisp History:: XEmacs Lisp is descended from Maclisp. * Lisp History:: XEmacs Lisp is descended from Maclisp.
* Conventions:: How the manual is formatted. * Conventions:: How the manual is formatted.
* Acknowledgements:: The authors, editors, and sponsors of this manual. * Acknowledgements:: The authors, editors, and sponsors of this manual.
@end menu @end menu
@node Caveats @node Caveats, Lisp History, Introduction, Introduction
@section Caveats @section Caveats
This manual has gone through numerous drafts. It is nearly complete This manual has gone through numerous drafts. It is nearly complete
but not flawless. There are a few topics that are not covered, either but not flawless. There are a few topics that are not covered, either
because we consider them secondary (such as most of the individual because we consider them secondary (such as most of the individual
modes) or because they are yet to be written. Because we are not able modes) or because they are yet to be written. Because we are not able
to deal with them completely, we have left out several parts to deal with them completely, we have left out several parts
intentionally. intentionally.
The manual should be fully correct in what it does cover, and it is The manual should be fully correct in what it does cover, and it is
skipping to change at line 492 skipping to change at line 492
or post to the newsgroup or post to the newsgroup
@example @example
comp.emacs.xemacs comp.emacs.xemacs
@end example @end example
@noindent @noindent
@display @display
--Ben Wing --Ben Wing
@end display @end display
@node Lisp History @node Lisp History, Conventions, Caveats, Introduction
@section Lisp History @section Lisp History
@cindex Lisp history @cindex Lisp history
Lisp (LISt Processing language) was first developed in the late 1950's Lisp (LISt Processing language) was first developed in the late 1950's
at the Massachusetts Institute of Technology for research in artificial at the Massachusetts Institute of Technology for research in artificial
intelligence. The great power of the Lisp language makes it superior intelligence. The great power of the Lisp language makes it superior
for other purposes as well, such as writing editing commands. for other purposes as well, such as writing editing commands.
@cindex Maclisp @cindex Maclisp
@cindex Common Lisp @cindex Common Lisp
skipping to change at line 518 skipping to change at line 518
XEmacs Lisp is largely inspired by Maclisp, and a little by Common XEmacs Lisp is largely inspired by Maclisp, and a little by Common
Lisp. If you know Common Lisp, you will notice many similarities. Lisp. If you know Common Lisp, you will notice many similarities.
However, many of the features of Common Lisp have been omitted or However, many of the features of Common Lisp have been omitted or
simplified in order to reduce the memory requirements of XEmacs. simplified in order to reduce the memory requirements of XEmacs.
Sometimes the simplifications are so drastic that a Common Lisp user Sometimes the simplifications are so drastic that a Common Lisp user
might be very confused. We will occasionally point out how XEmacs might be very confused. We will occasionally point out how XEmacs
Lisp differs from Common Lisp. If you don't know Common Lisp, don't Lisp differs from Common Lisp. If you don't know Common Lisp, don't
worry about it; this manual is self-contained. worry about it; this manual is self-contained.
@node Conventions @node Conventions, Acknowledgements, Lisp History, Introduction
@section Conventions @section Conventions
This section explains the notational conventions that are used in this This section explains the notational conventions that are used in this
manual. You may want to skip this section and refer back to it later. manual. You may want to skip this section and refer back to it later.
@menu @menu
* Some Terms:: Explanation of terms we use in this manual. * Some Terms:: Explanation of terms we use in this manual.
* nil and t:: How the symbols @code{nil} and @code{t} are used. * nil and t:: How the symbols @code{nil} and @code{t} are used.
* Evaluation Notation:: The format we use for examples of evaluation. * Evaluation Notation:: The format we use for examples of evaluation.
* Printing Notation:: The format we use for examples that print output. * Printing Notation:: The format we use for examples that print output.
* Error Messages:: The format we use for examples of errors. * Error Messages:: The format we use for examples of errors.
* Buffer Text Notation:: The format we use for buffer contents in examples. * Buffer Text Notation:: The format we use for buffer contents in examples.
* Format of Descriptions:: Notation for describing functions, variables, etc. * Format of Descriptions:: Notation for describing functions, variables, etc.
@end menu @end menu
@node Some Terms @node Some Terms, nil and t, Conventions, Conventions
@subsection Some Terms @subsection Some Terms
Throughout this manual, the phrases ``the Lisp reader'' and ``the Lisp Throughout this manual, the phrases ``the Lisp reader'' and ``the Lisp
printer'' are used to refer to those routines in Lisp that convert printer'' are used to refer to those routines in Lisp that convert
textual representations of Lisp objects into actual Lisp objects, and vice textual representations of Lisp objects into actual Lisp objects, and vice
versa. @xref{Printed Representation}, for more details. You, the versa. @xref{Printed Representation}, for more details. You, the
person reading this manual, are thought of as ``the programmer'' and are person reading this manual, are thought of as ``the programmer'' and are
addressed as ``you''. ``The user'' is the person who uses Lisp programs, addressed as ``you''. ``The user'' is the person who uses Lisp programs,
including those you write. including those you write.
@cindex fonts @cindex fonts
Examples of Lisp code appear in this font or form: @code{(list 1 2 Examples of Lisp code appear in this font or form: @code{(list 1 2
3)}. Names that represent arguments or metasyntactic variables appear 3)}. Names that represent arguments or metasyntactic variables appear
in this font or form: @var{first-number}. in this font or form: @var{first-number}.
@node nil and t @node nil and t, Evaluation Notation, Some Terms, Conventions
@subsection @code{nil} and @code{t} @subsection @code{nil} and @code{t}
@cindex @code{nil}, uses of @cindex @code{nil}, uses of
@cindex truth value @cindex truth value
@cindex boolean @cindex boolean
@cindex false @cindex false
In Lisp, the symbol @code{nil} has three separate meanings: it In Lisp, the symbol @code{nil} has three separate meanings: it
is a symbol with the name @samp{nil}; it is the logical truth value is a symbol with the name @samp{nil}; it is the logical truth value
@var{false}; and it is the empty list---the list of zero elements. @var{false}; and it is the empty list---the list of zero elements.
When used as a variable, @code{nil} always has the value @code{nil}. When used as a variable, @code{nil} always has the value @code{nil}.
skipping to change at line 593 skipping to change at line 593
to represent the truth value @var{true}. When you need to choose a to represent the truth value @var{true}. When you need to choose a
value which represents @var{true}, and there is no other basis for value which represents @var{true}, and there is no other basis for
choosing, use @code{t}. The symbol @code{t} always has value @code{t}. choosing, use @code{t}. The symbol @code{t} always has value @code{t}.
In XEmacs Lisp, @code{nil} and @code{t} are special symbols that always In XEmacs 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 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 to use them as constants in a program. An attempt to change their
values results in a @code{setting-constant} error. @xref{Accessing values results in a @code{setting-constant} error. @xref{Accessing
Variables}. Variables}.
@node Evaluation Notation @node Evaluation Notation, Printing Notation, nil and t, Conventions
@subsection Evaluation Notation @subsection Evaluation Notation
@cindex evaluation notation @cindex evaluation notation
@cindex documentation notation @cindex documentation notation
A Lisp expression that you can evaluate is called a @dfn{form}. 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 Evaluating a form always produces a result, which is a Lisp object. In
the examples in this manual, this is indicated with @samp{@result{}}: the examples in this manual, this is indicated with @samp{@result{}}:
@example @example
(car '(1 2)) (car '(1 2))
skipping to change at line 629 skipping to change at line 629
@end example @end example
Sometimes to help describe one form we show another form that Sometimes to help describe one form we show another form that
produces identical results. The exact equivalence of two forms is produces identical results. The exact equivalence of two forms is
indicated with @samp{@equiv{}}. indicated with @samp{@equiv{}}.
@example @example
(cons 'a nil) @equiv{} (list 'a) (cons 'a nil) @equiv{} (list 'a)
@end example @end example
@node Printing Notation @node Printing Notation, Error Messages, Evaluation Notation, Conventions
@subsection Printing Notation @subsection Printing Notation
@cindex printing notation @cindex printing notation
Many of the examples in this manual print text when they are Many of the examples in this manual print text when they are
evaluated. If you execute example code in a Lisp Interaction buffer evaluated. If you execute example code in a Lisp Interaction buffer
(such as the buffer @samp{*scratch*}), the printed text is inserted into (such as the buffer @samp{*scratch*}), the printed text is inserted into
the buffer. If you execute the example by other means (such as by the buffer. If you execute the example by other means (such as by
evaluating the function @code{eval-region}), the printed text is evaluating the function @code{eval-region}), the printed text is
displayed in the echo area. You should be aware that text displayed in displayed in the echo area. You should be aware that text displayed in
the echo area is truncated to a single line. the echo area is truncated to a single line.
skipping to change at line 654 skipping to change at line 654
@example @example
@group @group
(progn (print 'foo) (print 'bar)) (progn (print 'foo) (print 'bar))
@print{} foo @print{} foo
@print{} bar @print{} bar
@result{} bar @result{} bar
@end group @end group
@end example @end example
@node Error Messages @node Error Messages, Buffer Text Notation, Printing Notation, Conventions
@subsection Error Messages @subsection Error Messages
@cindex error message notation @cindex error message notation
Some examples signal errors. This normally displays an error message Some examples signal errors. This normally displays an error message
in the echo area. We show the error message on a line starting with in the echo area. We show the error message on a line starting with
@samp{@error{}}. Note that @samp{@error{}} itself does not appear in @samp{@error{}}. Note that @samp{@error{}} itself does not appear in
the echo area. the echo area.
@example @example
(+ 23 'x) (+ 23 'x)
@error{} Wrong type argument: integer-or-marker-p, x @error{} Wrong type argument: integer-or-marker-p, x
@end example @end example
@node Buffer Text Notation @node Buffer Text Notation, Format of Descriptions, Error Messages, Conventions
@subsection Buffer Text Notation @subsection Buffer Text Notation
@cindex buffer text notation @cindex buffer text notation
Some examples show modifications to text in a buffer, with ``before'' Some examples show modifications to text in a buffer, with ``before''
and ``after'' versions of the text. These examples show the contents of and ``after'' versions of the text. These examples show the contents of
the buffer in question between two lines of dashes containing the buffer the buffer in question between two lines of dashes containing the buffer
name. In addition, @samp{@point{}} indicates the location of point. name. In addition, @samp{@point{}} indicates the location of point.
(The symbol for point, of course, is not part of the text in the buffer; (The symbol for point, of course, is not part of the text in the buffer;
it indicates the place @emph{between} two characters where point is it indicates the place @emph{between} two characters where point is
located.) located.)
skipping to change at line 692 skipping to change at line 692
This is the @point{}contents of foo. This is the @point{}contents of foo.
---------- Buffer: foo ---------- ---------- Buffer: foo ----------
(insert "changed ") (insert "changed ")
@result{} nil @result{} nil
---------- Buffer: foo ---------- ---------- Buffer: foo ----------
This is the changed @point{}contents of foo. This is the changed @point{}contents of foo.
---------- Buffer: foo ---------- ---------- Buffer: foo ----------
@end example @end example
@node Format of Descriptions @node Format of Descriptions, , Buffer Text Notation, Conventions
@subsection Format of Descriptions @subsection Format of Descriptions
@cindex description format @cindex description format
Functions, variables, macros, commands, user options, and special Functions, variables, macros, commands, user options, and special
forms are described in this manual in a uniform format. The first forms are described in this manual in a uniform format. The first
line of a description contains the name of the item followed by its line of a description contains the name of the item followed by its
arguments, if any. arguments, if any.
@ifinfo @ifinfo
The category---function, variable, or whatever---appears at the The category---function, variable, or whatever---appears at the
beginning of the line. beginning of the line.
skipping to change at line 718 skipping to change at line 718
The description follows on succeeding lines, sometimes with examples. The description follows on succeeding lines, sometimes with examples.
@menu @menu
* A Sample Function Description:: A description of an imaginary * A Sample Function Description:: A description of an imaginary
function, @code{foo}. function, @code{foo}.
* A Sample Variable Description:: A description of an imaginary * A Sample Variable Description:: A description of an imaginary
variable, variable,
@code{electric-future-map}. @code{electric-future-map}.
@end menu @end menu
@node A Sample Function Description @node A Sample Function Description, A Sample Variable Description, Format of De scriptions, Format of Descriptions
@subsubsection A Sample Function Description @subsubsection A Sample Function Description
@cindex function descriptions @cindex function descriptions
@cindex command descriptions @cindex command descriptions
@cindex macro descriptions @cindex macro descriptions
@cindex special form descriptions @cindex special form descriptions
In a function description, the name of the function being described In a function description, the name of the function being described
appears first. It is followed on the same line by a list of parameters. appears first. It is followed on the same line by a list of parameters.
The names used for the parameters are also used in the body of the The names used for the parameters are also used in the body of the
description. description.
skipping to change at line 822 skipping to change at line 822
(setq done t))) (setq done t)))
@end example @end example
In this special form, the arguments @var{from} and @var{to} are In this special form, the arguments @var{from} and @var{to} are
optional, but must both be present or both absent. If they are present, optional, but must both be present or both absent. If they are present,
@var{inc} may optionally be specified as well. These arguments are @var{inc} may optionally be specified as well. These arguments are
grouped with the argument @var{var} into a list, to distinguish them grouped with the argument @var{var} into a list, to distinguish them
from @var{body}, which includes all remaining elements of the form. from @var{body}, which includes all remaining elements of the form.
@end defspec @end defspec
@node A Sample Variable Description @node A Sample Variable Description, , A Sample Function Description, Format of Descriptions
@subsubsection A Sample Variable Description @subsubsection A Sample Variable Description
@cindex variable descriptions @cindex variable descriptions
@cindex option descriptions @cindex option descriptions
A @dfn{variable} is a name that can hold a value. Although any A @dfn{variable} is a name that can hold a value. Although any
variable can be set by the user, certain variables that exist variable can be set by the user, certain variables that exist
specifically so that users can change them are called @dfn{user specifically so that users can change them are called @dfn{user
options}. Ordinary variables and user options are described using a options}. Ordinary variables and user options are described using a
format like that for functions except that there are no arguments. format like that for functions except that there are no arguments.
skipping to change at line 845 skipping to change at line 845
@defvar electric-future-map @defvar electric-future-map
The value of this variable is a full keymap used by Electric Command The value of this variable is a full keymap used by Electric Command
Future mode. The functions in this map allow you to edit commands you Future mode. The functions in this map allow you to edit commands you
have not yet thought about executing. have not yet thought about executing.
@end defvar @end defvar
User option descriptions have the same format, but `Variable' is User option descriptions have the same format, but `Variable' is
replaced by `User Option'. replaced by `User Option'.
@node Acknowledgements @node Acknowledgements, , Conventions, Introduction
@section Acknowledgements @section Acknowledgements
This manual was based on the GNU Emacs Lisp Reference Manual, version This manual was based on the GNU Emacs Lisp Reference Manual, version
2.4, written by Robert Krawitz, Bil Lewis, Dan LaLiberte, Richard 2.4, written by Robert Krawitz, Bil Lewis, Dan LaLiberte, Richard
M. Stallman and Chris Welty, the volunteers of the GNU manual group, in M. Stallman and Chris Welty, the volunteers of the GNU manual group, in
an effort extending over several years. Robert J. Chassell helped to an effort extending over several years. Robert J. Chassell helped to
review and edit the manual, with the support of the Defense Advanced review and edit the manual, with the support of the Defense Advanced
Research Projects Agency, ARPA Order 6082, arranged by Warren A. Hunt, Research Projects Agency, ARPA Order 6082, arranged by Warren A. Hunt,
Jr. of Computational Logic, Inc. Jr. of Computational Logic, Inc.
 End of changes. 15 change blocks. 
15 lines changed or deleted 15 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)