Mercurial > hg > xemacs-beta
diff man/lispref/control.texi @ 5361:62b9ef1ed4ac
Change "special form" to "special operator" in the manuals, too
2011-03-01 Aidan Kehoe <kehoea@parhasard.net>
* lispref/commands.texi (Using Interactive):
* lispref/compile.texi (Eval During Compile):
* lispref/compile.texi (Compiled-Function Objects):
* lispref/control.texi (Sequencing):
* lispref/control.texi (Conditionals):
* lispref/control.texi (Combining Conditions):
* lispref/control.texi (Iteration):
* lispref/control.texi (Catch and Throw):
* lispref/control.texi (Handling Errors):
* lispref/control.texi (Cleanups):
* lispref/display.texi (Temporary Displays):
* lispref/eval.texi (Quoting):
* lispref/eval.texi (Multiple values):
* lispref/frames.texi (Input Focus):
* lispref/functions.texi (Argument List):
* lispref/functions.texi (Defining Functions):
* lispref/functions.texi (Anonymous Functions):
* lispref/internationalization.texi (Level 3 Primitives):
* lispref/internationalization.texi (Domain Specification):
* lispref/intro.texi (A Sample Function Description):
* lispref/intro.texi (A Sample Variable Description):
* lispref/lists.texi (Sets And Lists):
* lispref/macros.texi (Defining Macros):
* lispref/macros.texi (Backquote):
* lispref/positions.texi (Excursions):
* lispref/positions.texi (Narrowing):
* lispref/searching.texi (Saving Match Data):
* lispref/sequences.texi (Sequence Functions):
* lispref/sequences.texi (Array Functions):
* lispref/specifiers.texi (Adding Specifications):
* lispref/variables.texi (Local Variables):
* lispref/variables.texi (Defining Variables):
* lispref/variables.texi (Setting Variables):
* lispref/variables.texi (Default Value):
* lispref/windows.texi (Selecting Windows):
* lispref/windows.texi (Window Configurations):
No longer use @defspec, since we no longer use the term "special
form"; instead use @deffn {Special Operator}. Unfortunately
there's no way in texinfo to redefine @defspec in one place.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Tue, 01 Mar 2011 14:18:45 +0000 |
parents | 755ae5b97edb |
children | 9fae6227ede5 |
line wrap: on
line diff
--- a/man/lispref/control.texi Sat Feb 19 11:03:46 2011 +0000 +++ b/man/lispref/control.texi Tue Mar 01 14:18:45 2011 +0000 @@ -76,7 +76,7 @@ needed now most often inside an @code{unwind-protect}, @code{and}, @code{or}, or in the @var{then}-part of an @code{if}. -@defspec progn forms@dots{} +@deffn {Special Operator} progn forms@dots{} This special operator evaluates all of the @var{forms}, in textual order, returning the result of the final form. @@ -91,12 +91,12 @@ @result{} "The third form" @end group @end example -@end defspec +@end deffn Two other control constructs likewise evaluate a series of forms but return a different value: -@defspec prog1 form1 forms@dots{} +@deffn {Special Operator} prog1 form1 forms@dots{} This special operator evaluates @var{form1} and all of the @var{forms}, in textual order, returning the result of @var{form1}. @@ -118,9 +118,9 @@ @example (prog1 (car x) (setq x (cdr x))) @end example -@end defspec +@end deffn -@defspec prog2 form1 form2 forms@dots{} +@deffn {Special Operator} prog2 form1 form2 forms@dots{} This special operator evaluates @var{form1}, @var{form2}, and all of the following @var{forms}, in textual order, returning the result of @var{form2}. @@ -136,7 +136,7 @@ @result{} "The second form" @end group @end example -@end defspec +@end deffn @node Conditionals @section Conditionals @@ -146,7 +146,7 @@ has two conditional forms: @code{if}, which is much the same as in other languages, and @code{cond}, which is a generalized case statement. -@defspec if condition then-form else-forms@dots{} +@deffn {Special Operator} if condition then-form else-forms@dots{} @code{if} chooses between the @var{then-form} and the @var{else-forms} based on the value of @var{condition}. If the evaluated @var{condition} is non-@code{nil}, @var{then-form} is evaluated and the result returned. @@ -169,9 +169,9 @@ @result{} very-false @end group @end example -@end defspec +@end deffn -@defspec cond clause@dots{} +@deffn {Special Operator} cond clause@dots{} @code{cond} chooses among an arbitrary number of alternatives. Each @var{clause} in the @code{cond} must be a list. The @sc{car} of this list is the @var{condition}; the remaining elements, if any, the @@ -239,7 +239,7 @@ @noindent This expression is a @code{cond} which returns @code{foo} if the value of @code{a} is 1, and returns the string @code{"default"} otherwise. -@end defspec +@end deffn Any conditional construct can be expressed with @code{cond} or with @code{if}. Therefore, the choice between them is a matter of style. @@ -268,7 +268,7 @@ using the name @code{null} if you are testing for an empty list. @end defun -@defspec and conditions@dots{} +@deffn {Special Operator} and conditions@dots{} The @code{and} special operator tests whether all the @var{conditions} are true. It works by evaluating the @var{conditions} one by one in the order written. @@ -320,9 +320,9 @@ (cond (@var{arg1} (cond (@var{arg2} @var{arg3})))) @end group @end example -@end defspec +@end deffn -@defspec or conditions@dots{} +@deffn {Special Operator} or conditions@dots{} The @code{or} special operator tests whether at least one of the @var{conditions} is true. It works by evaluating all the @var{conditions} one by one in the order written. @@ -369,7 +369,7 @@ This is not completely equivalent because it can evaluate @var{arg1} or @var{arg2} twice. By contrast, @code{(or @var{arg1} @var{arg2} @var{arg3})} never evaluates any argument more than once. -@end defspec +@end deffn @node Iteration @section Iteration @@ -381,7 +381,7 @@ of a list, or once for each integer from 0 to @var{n}. You can do this in XEmacs Lisp with the special operator @code{while}: -@defspec while condition forms@dots{} +@deffn {Special Operator} while condition forms@dots{} @code{while} first evaluates @var{condition}. If the result is non-@code{nil}, it evaluates @var{forms} in textual order. Then it reevaluates @var{condition}, and if the result is non-@code{nil}, it @@ -427,7 +427,7 @@ This moves forward one line and continues moving by lines until it reaches an empty. It is unusual in that the @code{while} has no body, just the end test (which also does the real work of moving point). -@end defspec +@end deffn @node Nonlocal Exits @section Nonlocal Exits @@ -499,15 +499,7 @@ @code{throw} can be used in commands such as @code{exit-recursive-edit} that throw back to the editor command loop (@pxref{Recursive Editing}). -@cindex CL note---only @code{throw} in Emacs -@quotation -@b{Common Lisp note:} Most other versions of Lisp, including Common Lisp, -have several ways of transferring control nonsequentially: @code{return}, -@code{return-from}, and @code{go}, for example. XEmacs Lisp has only -@code{throw}. -@end quotation - -@defspec catch tag body@dots{} +@deffn {Special Operator} catch tag body@dots{} @cindex tag on run time stack @code{catch} establishes a return point for the @code{throw} function. The return point is distinguished from other such return points by @var{tag}, @@ -522,7 +514,7 @@ If a @code{throw} is done within @var{body} specifying the same value @var{tag}, the @code{catch} exits immediately; the value it returns is whatever was specified as the second argument of @code{throw}. -@end defspec +@end deffn @defun throw tag value The purpose of @code{throw} is to return from a return point previously @@ -1028,7 +1020,7 @@ by an error handler (though using @code{throw} when there is no suitable @code{catch} signals an error that can be handled). -@defspec condition-case var protected-form handlers@dots{} +@deffn {Special Operator} condition-case var protected-form handlers@dots{} This special operator establishes the error handlers @var{handlers} around the execution of @var{protected-form}. If @var{protected-form} executes without error, the value it returns becomes the value of the @@ -1077,7 +1069,7 @@ If @var{var} is @code{nil}, that means no variable is bound. Then the error symbol and associated data are not available to the handler. -@end defspec +@end deffn @cindex @code{arith-error} example Here is an example of using @code{condition-case} to handle the error @@ -1252,7 +1244,7 @@ temporarily put a data structure in an inconsistent state; it permits you to ensure the data are consistent in the event of an error or throw. -@defspec unwind-protect body cleanup-forms@dots{} +@deffn {Special Operator} unwind-protect body cleanup-forms@dots{} @cindex cleanup forms @cindex protected forms @cindex error cleanup @@ -1278,7 +1270,7 @@ The number of currently active @code{unwind-protect} forms counts, together with the number of local variable bindings, against the limit @code{max-specpdl-size} (@pxref{Local Variables}). -@end defspec +@end deffn For example, here we make an invisible buffer for temporary use, and make sure to kill it before finishing: