|
From: Dieter K. <cra...@us...> - 2011-06-15 21:12:41
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Maxima, A Computer Algebra System".
The branch, master has been updated
via 99e568da2ac8ba6a6b04f568e049d04b372bb344 (commit)
via 2ed798c1658ddf2738adeb9740a84decbb081ea8 (commit)
via 72be3f0e16fb6a14e7e5f089bddc1775d4966ef4 (commit)
via 7350d88ce6e7dd80aeb6d3b0788f587576e676f5 (commit)
via 811489720f57d33a0db65f3a340984f3e7c9e16e (commit)
via ddd3eb21cb0752d8d32b1d377980bb0ff9f656eb (commit)
via ba8cf80903cdf0cbb343a5ed6273f0e50a5fb2ed (commit)
via 4215aa5aba4a52a86428184119156e9ff7629113 (commit)
via 84466052f69ee1b63964eff124524308413e5e4b (commit)
via 07a8146ac68f07212beb02d143426fe407b381f6 (commit)
via 9c0942e83dfcb7f6fb99d04a8b3abff8ebf2e7e1 (commit)
via 8495fd2562d5c45250556407138026fb770a3f99 (commit)
via 21e0645b81aeccf2b637b5b601efc9cdd2e031e1 (commit)
from e0a447b32f3198c0e05912082a01e0f781a5b784 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 99e568da2ac8ba6a6b04f568e049d04b372bb344
Author: crategus <cra...@us...>
Date: Wed Jun 15 23:06:18 2011 +0200
Moving documentation to other files.
to Itensor.texi:
dispcon
show
to Program.texi:
error_size
error_syms
to Matrices.texi:
rmxchar
to Function.texi:
savedef
to Polynomials.texi:
showratvars
to Runtime.texi:
system
diff --git a/doc/info/Input.texi b/doc/info/Input.texi
index 2175e04..44a3898 100644
--- a/doc/info/Input.texi
+++ b/doc/info/Input.texi
@@ -78,27 +78,6 @@ depends on the system like Windows or Linux and on the installation.
@c -----------------------------------------------------------------------------
@c -----------------------------------------------------------------------------
-@anchor{file_output_append}
-@defvr {Option variable} file_output_append
-Default value: @code{false}
-
-@code{file_output_append} governs whether file output functions append or
-truncate their output file. When @code{file_output_append} is @code{true}, such
-functions append to their output file. Otherwise, the output file is truncated.
-
-@code{save}, @code{stringout}, and @code{with_stdout} respect
-@code{file_output_append}. Other functions which write output files do not
-respect @code{file_output_append}. In particular, plotting and translation
-functions always truncate their output file, and @code{tex} and
-@code{appendfile} always append.
-@c WHAT ABOUT WRITEFILE ??
-
-@opencatbox
-@category{File output} @category{Global flags}
-@closecatbox
-@end defvr
-
-@c -----------------------------------------------------------------------------
@anchor{appendfile}
@deffn {Function} appendfile (@var{filename})
@@ -211,100 +190,24 @@ Closes the transcript file opened by @code{writefile} or @code{appendfile}.
@closecatbox
@end deffn
-@c HMM, THIS NEXT ITEM IS DEFINED IN A SHARE FILE (itensor.lisp);
-@c DOES ITS DESCRIPTION WANT TO BE ELSEWHERE ???
-
@c -----------------------------------------------------------------------------
-@anchor{dispcon}
-@deffn {Function} dispcon (@var{tensor_1}, @var{tensor_2}, @dots{})
-@deffnx {Function} dispcon (all)
-
-Displays the contraction properties of its arguments as were given to
-@code{defcon}. @code{dispcon (all)} displays all the contraction properties
-which were defined.
-
-@opencatbox
-@category{Display functions}
-@closecatbox
-@end deffn
-
-@c -----------------------------------------------------------------------------
-@anchor{error_size}
-@defvr {Option variable} error_size
-Default value: 10
-
-@code{error_size} modifies error messages according to the size of expressions
-which appear in them. If the size of an expression (as determined by the Lisp
-function @code{ERROR-SIZE}) is greater than @code{error_size}, the expression is
-replaced in the message by a symbol, and the symbol is assigned the expression.
-The symbols are taken from the list @code{error_syms}.
-
-Otherwise, the expression is smaller than @code{error_size}, and the expression
-is displayed in the message.
-
-See also @code{error} and @code{error_syms}.
-
-Example:
-@c OUTPUT GENERATED BY THE FOLLOWING
-@c U: (C^D^E + B + A)/(cos(X-1) + 1)$
-@c error_size: 20$
-@c error ("Example expression is", U);
-@c errexp1;
-@c error_size: 30$
-@c error ("Example expression is", U);
-
-The size of @code{U}, as determined by @code{ERROR-SIZE}, is 24.
-
-@example
-(%i1) U: (C^D^E + B + A)/(cos(X-1) + 1)$
-
-(%i2) error_size: 20$
-
-(%i3) error ("Example expression is", U);
-
-Example expression is errexp1
- -- an error. Quitting. To debug this try debugmode(true);
-(%i4) errexp1;
- E
- D
- C + B + A
-(%o4) --------------
- cos(X - 1) + 1
-(%i5) error_size: 30$
-
-(%i6) error ("Example expression is", U);
-
- E
- D
- C + B + A
-Example expression is --------------
- cos(X - 1) + 1
- -- an error. Quitting. To debug this try debugmode(true);
-@end example
-
-@opencatbox
-@category{Debugging} @category{Display flags and variables}
-@closecatbox
-@end defvr
-
-@c -----------------------------------------------------------------------------
-@anchor{error_syms}
-@defvr {Option variable} error_syms
-Default value: @code{[errexp1, errexp2, errexp3]}
-
-In error messages, expressions larger than @code{error_size} are replaced by
-symbols, and the symbols are set to the expressions. The symbols are taken from
-the list @code{error_syms}. The first too-large expression is replaced by
-@code{error_syms[1]}, the second by @code{error_syms[2]}, and so on.
+@anchor{file_output_append}
+@defvr {Option variable} file_output_append
+Default value: @code{false}
-If there are more too-large expressions than there are elements of
-@code{error_syms}, symbols are constructed automatically, with the @var{n}-th
-symbol equivalent to @code{concat ('errexp, @var{n})}.
+@code{file_output_append} governs whether file output functions append or
+truncate their output file. When @code{file_output_append} is @code{true}, such
+functions append to their output file. Otherwise, the output file is truncated.
-See also @code{error} and @code{error_size}.
+@code{save}, @code{stringout}, and @code{with_stdout} respect
+@code{file_output_append}. Other functions which write output files do not
+respect @code{file_output_append}. In particular, plotting and translation
+functions always truncate their output file, and @code{tex} and
+@code{appendfile} always append.
+@c WHAT ABOUT WRITEFILE ??
@opencatbox
-@category{Debugging} @category{Display flags and variables}
+@category{File output} @category{Global flags}
@closecatbox
@end defvr
@@ -739,20 +642,6 @@ Examples:
@end example
@end deffn
-@c -----------------------------------------------------------------------------
-@anchor{rmxchar}
-@defvr {Option variable} rmxchar
-Default value: @code{]}
-
-@code{rmxchar} is the character drawn on the right-hand side of a matrix.
-
-See also @code{lmxchar}.
-
-@opencatbox
-@category{Display flags and variables}
-@closecatbox
-@end defvr
-
@c NEEDS EXAMPLES
@c -----------------------------------------------------------------------------
@@ -815,56 +704,6 @@ been assigned new values by the user; see @code{myoptions}.
@closecatbox
@end deffn
-@c NEEDS MORE WORK !!!
-
-@c -----------------------------------------------------------------------------
-@anchor{savedef}
-@defvr {Option variable} savedef
-Default value: @code{true}
-
-When @code{savedef} is @code{true}, the Maxima version of a user function is
-preserved when the function is translated. This permits the definition to be
-displayed by @code{dispfun} and allows the function to be edited.
-
-When @code{savedef} is @code{false}, the names of translated functions are
-removed from the @code{functions} list.
-
-@opencatbox
-@category{Translation flags and variables}
-@closecatbox
-@end defvr
-
-@c THIS FUNCTION IS IN THE SHARE PACKAGE itensor.lisp
-@c MOVE THIS DESCRIPTION TO Itensor.texi
-
-@c -----------------------------------------------------------------------------
-@anchor{show}
-@deffn {Function} show (@var{expr})
-
-Displays @code{expr} with the indexed objects in it shown
-having covariant indices as subscripts, contravariant indices as
-superscripts. The derivative indices are displayed as subscripts,
-separated from the covariant indices by a comma.
-
-@opencatbox
-@category{Package itensor} @category{Display functions}
-@closecatbox
-@end deffn
-
-@c -----------------------------------------------------------------------------
-@anchor{showratvars}
-@deffn {Function} showratvars (@var{expr})
-
-Returns a list of the canonical rational expression (CRE) variables in
-expression @code{expr}.
-
-See also @code{ratvars}.
-
-@opencatbox
-@category{Rational expressions} @category{Display functions}
-@closecatbox
-@end deffn
-
@c -----------------------------------------------------------------------------
@anchor{stringout}
@deffn {Function} stringout (@var{filename}, @var{expr_1}, @var{expr_2}, @var{expr_3}, @dots{})
@@ -1316,34 +1155,6 @@ g\left(x\right)+f\left(x\right)
@closecatbox
@end deffn
-@c NEEDS CLARIFICATION
-
-@c -----------------------------------------------------------------------------
-@anchor{system}
-@deffn {Function} system (@var{command})
-
-Executes @var{command} as a separate process. The command is passed to the
-default shell for execution. @code{system} is not supported by all operating
-systems, but generally exists in Unix and Unix-like environments.
-
-Supposing @code{_hist.out} is a list of frequencies which you wish to plot as a
-bar graph using @code{xgraph}.
-
-@example
-(%i1) (with_stdout("_hist.out",
- for i:1 thru length(hist) do (
- print(i,hist[i]))),
- system("xgraph -bar -brw .7 -nl < _hist.out"));
-@end example
-
-In order to make the plot be done in the background (returning control to
-Maxima) and remove the temporary file after it is done do:
-
-@example
-system("(xgraph -bar -brw .7 -nl < _hist.out; rm -f _hist.out)&")
-@end example
-@end deffn
-
@c -----------------------------------------------------------------------------
@anchor{with_stdout}
@deffn {Function} with_stdout (@var{f}, @var{expr_1}, @var{expr_2}, @var{expr_3}, @dots{})
commit 2ed798c1658ddf2738adeb9740a84decbb081ea8
Author: crategus <cra...@us...>
Date: Wed Jun 15 23:03:47 2011 +0200
Adding the documentation for rmxchar from Input.texi.
diff --git a/doc/info/Matrices.texi b/doc/info/Matrices.texi
index 8ebd3fd..962eb48 100644
--- a/doc/info/Matrices.texi
+++ b/doc/info/Matrices.texi
@@ -1804,6 +1804,20 @@ The return value is a matrix.
@end deffn
@c -----------------------------------------------------------------------------
+@anchor{rmxchar}
+@defvr {Option variable} rmxchar
+Default value: @code{]}
+
+@code{rmxchar} is the character drawn on the right-hand side of a matrix.
+
+See also @code{lmxchar}.
+
+@opencatbox
+@category{Display flags and variables}
+@closecatbox
+@end defvr
+
+@c -----------------------------------------------------------------------------
@anchor{scalarmatrixp}
@defvr {Option variable} scalarmatrixp
Default value: @code{true}
commit 72be3f0e16fb6a14e7e5f089bddc1775d4966ef4
Author: crategus <cra...@us...>
Date: Wed Jun 15 23:03:15 2011 +0200
Adding the documentation for savedef from Input.texi.
diff --git a/doc/info/Function.texi b/doc/info/Function.texi
index 918690f..69d8d5c 100644
--- a/doc/info/Function.texi
+++ b/doc/info/Function.texi
@@ -2018,6 +2018,25 @@ which there is no function definition.
@closecatbox
@end deffn
+@c NEEDS MORE WORK !!!
+
+@c -----------------------------------------------------------------------------
+@anchor{savedef}
+@defvr {Option variable} savedef
+Default value: @code{true}
+
+When @code{savedef} is @code{true}, the Maxima version of a user function is
+preserved when the function is translated. This permits the definition to be
+displayed by @code{dispfun} and allows the function to be edited.
+
+When @code{savedef} is @code{false}, the names of translated functions are
+removed from the @code{functions} list.
+
+@opencatbox
+@category{Translation flags and variables}
+@closecatbox
+@end defvr
+
@c IS THERE ANY REASON TO SET transcompile: false ??
@c MAYBE THIS VARIABLE COULD BE PERMANENTLY SET TO true AND STRUCK FROM THE DOCUMENTATION.
commit 7350d88ce6e7dd80aeb6d3b0788f587576e676f5
Author: crategus <cra...@us...>
Date: Wed Jun 15 23:02:28 2011 +0200
Adding the documentation for system from Input.texi.
diff --git a/doc/info/Runtime.texi b/doc/info/Runtime.texi
index 9b38d3a..0cea831 100644
--- a/doc/info/Runtime.texi
+++ b/doc/info/Runtime.texi
@@ -241,6 +241,34 @@ information.
@closecatbox
@end deffn
+@c NEEDS CLARIFICATION
+
+@c -----------------------------------------------------------------------------
+@anchor{system}
+@deffn {Function} system (@var{command})
+
+Executes @var{command} as a separate process. The command is passed to the
+default shell for execution. @code{system} is not supported by all operating
+systems, but generally exists in Unix and Unix-like environments.
+
+Supposing @code{_hist.out} is a list of frequencies which you wish to plot as a
+bar graph using @code{xgraph}.
+
+@example
+(%i1) (with_stdout("_hist.out",
+ for i:1 thru length(hist) do (
+ print(i,hist[i]))),
+ system("xgraph -bar -brw .7 -nl < _hist.out"));
+@end example
+
+In order to make the plot be done in the background (returning control to
+Maxima) and remove the temporary file after it is done do:
+
+@example
+system("(xgraph -bar -brw .7 -nl < _hist.out; rm -f _hist.out)&")
+@end example
+@end deffn
+
@c -----------------------------------------------------------------------------
@anchor{time}
@deffn {Function} time (%o1, %o2, %o3, @dots{})
commit 811489720f57d33a0db65f3a340984f3e7c9e16e
Author: crategus <cra...@us...>
Date: Wed Jun 15 23:01:58 2011 +0200
Adding the documentation for showratvars from Input.texi.
diff --git a/doc/info/Polynomials.texi b/doc/info/Polynomials.texi
index 6df9d43..162dd3d 100644
--- a/doc/info/Polynomials.texi
+++ b/doc/info/Polynomials.texi
@@ -2160,6 +2160,20 @@ containing some of the same factors.
@closecatbox
@end defvr
+@c -----------------------------------------------------------------------------
+@anchor{showratvars}
+@deffn {Function} showratvars (@var{expr})
+
+Returns a list of the canonical rational expression (CRE) variables in
+expression @code{expr}.
+
+See also @code{ratvars}.
+
+@opencatbox
+@category{Rational expressions} @category{Display functions}
+@closecatbox
+@end deffn
+
@c I CAN'T TELL WHAT THIS IS SUPPOSED TO BE ABOUT
@c -----------------------------------------------------------------------------
commit ddd3eb21cb0752d8d32b1d377980bb0ff9f656eb
Author: crategus <cra...@us...>
Date: Wed Jun 15 23:01:09 2011 +0200
Adding the documentation for error_size and error_syms from
the file Input.texi.
diff --git a/doc/info/Program.texi b/doc/info/Program.texi
index 0b97537..e3b7cc2 100644
--- a/doc/info/Program.texi
+++ b/doc/info/Program.texi
@@ -347,6 +347,86 @@ This is effectively reprinting the most recent error message.
@end deffn
@c -----------------------------------------------------------------------------
+@anchor{error_size}
+@defvr {Option variable} error_size
+Default value: 10
+
+@code{error_size} modifies error messages according to the size of expressions
+which appear in them. If the size of an expression (as determined by the Lisp
+function @code{ERROR-SIZE}) is greater than @code{error_size}, the expression is
+replaced in the message by a symbol, and the symbol is assigned the expression.
+The symbols are taken from the list @code{error_syms}.
+
+Otherwise, the expression is smaller than @code{error_size}, and the expression
+is displayed in the message.
+
+See also @code{error} and @code{error_syms}.
+
+Example:
+@c OUTPUT GENERATED BY THE FOLLOWING
+@c U: (C^D^E + B + A)/(cos(X-1) + 1)$
+@c error_size: 20$
+@c error ("Example expression is", U);
+@c errexp1;
+@c error_size: 30$
+@c error ("Example expression is", U);
+
+The size of @code{U}, as determined by @code{ERROR-SIZE}, is 24.
+
+@example
+(%i1) U: (C^D^E + B + A)/(cos(X-1) + 1)$
+
+(%i2) error_size: 20$
+
+(%i3) error ("Example expression is", U);
+
+Example expression is errexp1
+ -- an error. Quitting. To debug this try debugmode(true);
+(%i4) errexp1;
+ E
+ D
+ C + B + A
+(%o4) --------------
+ cos(X - 1) + 1
+(%i5) error_size: 30$
+
+(%i6) error ("Example expression is", U);
+
+ E
+ D
+ C + B + A
+Example expression is --------------
+ cos(X - 1) + 1
+ -- an error. Quitting. To debug this try debugmode(true);
+@end example
+
+@opencatbox
+@category{Debugging} @category{Display flags and variables}
+@closecatbox
+@end defvr
+
+@c -----------------------------------------------------------------------------
+@anchor{error_syms}
+@defvr {Option variable} error_syms
+Default value: @code{[errexp1, errexp2, errexp3]}
+
+In error messages, expressions larger than @code{error_size} are replaced by
+symbols, and the symbols are set to the expressions. The symbols are taken from
+the list @code{error_syms}. The first too-large expression is replaced by
+@code{error_syms[1]}, the second by @code{error_syms[2]}, and so on.
+
+If there are more too-large expressions than there are elements of
+@code{error_syms}, symbols are constructed automatically, with the @var{n}-th
+symbol equivalent to @code{concat ('errexp, @var{n})}.
+
+See also @code{error} and @code{error_size}.
+
+@opencatbox
+@category{Debugging} @category{Display flags and variables}
+@closecatbox
+@end defvr
+
+@c -----------------------------------------------------------------------------
@anchor{errormsg}
@deffn {Function} errormsg ()
commit ba8cf80903cdf0cbb343a5ed6273f0e50a5fb2ed
Author: crategus <cra...@us...>
Date: Wed Jun 15 23:00:16 2011 +0200
Adding the documentation for Syntax from Expressions.texi to the
section Introduction to operators.
diff --git a/doc/info/Operators.texi b/doc/info/Operators.texi
index fd60e5f..052b7a3 100644
--- a/doc/info/Operators.texi
+++ b/doc/info/Operators.texi
@@ -13,6 +13,172 @@
@section Introduction to operators
@c -----------------------------------------------------------------------------
+It is possible to define new operators with specified precedence, to undefine
+existing operators, or to redefine the precedence of existing operators. An
+operator may be unary prefix or unary postfix, binary infix, n-ary infix,
+matchfix, or nofix. "Matchfix" means a pair of symbols which enclose their
+argument or arguments, and "nofix" means an operator which takes no arguments.
+As examples of the different types of operators, there are the following.
+
+@table @asis
+@item unary prefix
+negation @code{- a}
+@item unary postfix
+factorial @code{a!}
+@item binary infix
+exponentiation @code{a^b}
+@item n-ary infix
+addition @code{a + b}
+@item matchfix
+list construction @code{[a, b]}
+@end table
+
+(There are no built-in nofix operators; for an example of such an operator,
+see @code{nofix}.)
+
+The mechanism to define a new operator is straightforward. It is only necessary
+to declare a function as an operator; the operator function might or might not
+be defined.
+
+An example of user-defined operators is the following. Note that the explicit
+function call @code{"dd" (a)} is equivalent to @code{dd a}, likewise
+@code{"<-" (a, b)} is equivalent to @code{a <- b}. Note also that the functions
+@code{"dd"} and @code{"<-"} are undefined in this example.
+
+@c ===beg===
+@c prefix ("dd");
+@c dd a;
+@c "dd" (a);
+@c infix ("<-");
+@c a <- dd b;
+@c "<-" (a, "dd" (b));
+@c ===end===
+@example
+(%i1) prefix ("dd");
+(%o1) dd
+(%i2) dd a;
+(%o2) dd a
+(%i3) "dd" (a);
+(%o3) dd a
+(%i4) infix ("<-");
+(%o4) <-
+(%i5) a <- dd b;
+(%o5) a <- dd b
+(%i6) "<-" (a, "dd" (b));
+(%o6) a <- dd b
+@end example
+
+The Maxima functions which define new operators are summarized in this table,
+stating the default left and right binding powers (lbp and rbp, respectively).
+@c REWORK FOLLOWING COMMENT.
+@c IT'S NOT CLEAR ENOUGH, GIVEN THAT IT'S FAIRLY IMPORTANT
+(Binding power determines operator precedence. However, since left and right
+binding powers can differ, binding power is somewhat more complicated than
+precedence.) Some of the operation definition functions take additional
+arguments; see the function descriptions for details.
+
+@c MAKE ANCHORS FOR ALL 6 FUNCTIONS AND CHANGE @code TO @ref ACCORDINGLY
+@table @code
+@item prefix
+rbp=180
+@item postfix
+lbp=180
+@item infix
+lbp=180, rbp=180
+@item nary
+lbp=180, rbp=180
+@item matchfix
+(binding power not applicable)
+@item nofix
+(binding power not applicable)
+@end table
+
+For comparison, here are some built-in operators and their left and right
+binding powers.
+
+@example
+Operator lbp rbp
+
+ : 180 20
+ :: 180 20
+ := 180 20
+ ::= 180 20
+ ! 160
+ !! 160
+ ^ 140 139
+ . 130 129
+ * 120
+ / 120 120
+ + 100 100
+ - 100 134
+ = 80 80
+ # 80 80
+ > 80 80
+ >= 80 80
+ < 80 80
+ <= 80 80
+ not 70
+ and 65
+ or 60
+ , 10
+ $ -1
+ ; -1
+@end example
+
+@mref{remove} and @mref{kill} remove operator properties from an atom.
+@code{remove ("@var{a}", op)} removes only the operator properties of @var{a}.
+@code{kill ("@var{a}")} removes all properties of @var{a}, including the
+operator properties. Note that the name of the operator must be enclosed in
+quotation marks.
+
+@c MAYBE COPY THIS EXAMPLE TO remove AND/OR kill
+@c ===beg===
+@c infix ("##");
+@c "##" (a, b) := a^b;
+@c 5 ## 3;
+@c remove ("##", op);
+@c 5 ## 3;
+@c "##" (5, 3);
+@c infix ("##");
+@c 5 ## 3;
+@c kill ("##");
+@c 5 ## 3;
+@c "##" (5, 3);
+@c ===end===
+@example
+(%i1) infix ("##");
+(%o1) ##
+(%i2) "##" (a, b) := a^b;
+ b
+(%o2) a ## b := a
+(%i3) 5 ## 3;
+(%o3) 125
+(%i4) remove ("##", op);
+(%o4) done
+(%i5) 5 ## 3;
+Incorrect syntax: # is not a prefix operator
+5 ##
+ ^
+(%i5) "##" (5, 3);
+(%o5) 125
+(%i6) infix ("##");
+(%o6) ##
+(%i7) 5 ## 3;
+(%o7) 125
+(%i8) kill ("##");
+(%o8) done
+(%i9) 5 ## 3;
+Incorrect syntax: # is not a prefix operator
+5 ##
+ ^
+(%i9) "##" (5, 3);
+(%o9) ##(5, 3)
+@end example
+
+@opencatbox
+@category{Operators} @category{Syntax}
+@closecatbox
+
@c -----------------------------------------------------------------------------
@node Arithmetic operators, Relational operators, Introduction to operators, Operators
@section Arithmetic operators
@@ -1201,7 +1367,7 @@ to its right in an expression. Thus greater @var{lbp} makes @var{op}
right-associative, while greater @var{rbp} makes @var{op} left-associative.
If @var{lbp} is equal to @var{rbp}, @var{op} is left-associative.
-See also @ref{Syntax}.
+See also @ref{Introduction to operators}.
Examples:
@@ -1432,7 +1598,7 @@ to be an @code{nary} operator. Functions may be declared to be @code{nary}. If
@code{declare(j,nary);} is done, this tells the simplifier to simplify, e.g.
@code{j(j(a,b),j(c,d))} to @code{j(a, b, c, d)}.
-See also @ref{Syntax}.
+See also @ref{Introduction to operators}.
@opencatbox
@category{Operators} @category{Syntax}
@@ -1451,7 +1617,7 @@ corresponding function to be evaluated. For example, when one types
@code{nofix} operator. The function @code{nofix("x")} is a syntax extension
function which declares @code{x} to be a @code{nofix} operator.
-See also @ref{Syntax}.
+See also @ref{Introduction to operators}.
@opencatbox
@category{Operators} @category{Syntax}
@@ -1469,7 +1635,7 @@ occurrence of the operator in the input string, e.g. 3!. The
@code{postfix("x")} function is a syntax extension function to declare @code{x}
to be a @code{postfix} operator.
-See also @ref{Syntax}.
+See also @ref{Introduction to operators}.
@opencatbox
@category{Operators} @category{Syntax}
@@ -1486,7 +1652,7 @@ which argument immediately follows an occurrence of the operator.
@code{prefix("x")} is a syntax extension function to declare @code{x} to be a
@code{prefix} operator.
-See also @ref{Syntax}.
+See also @ref{Introduction to operators}.
@opencatbox
@category{Operators} @category{Syntax}
commit 4215aa5aba4a52a86428184119156e9ff7629113
Author: crategus <cra...@us...>
Date: Wed Jun 15 22:59:16 2011 +0200
Moving the section Syntax to the file Operators.texi.
diff --git a/doc/info/Expressions.texi b/doc/info/Expressions.texi
index efd05a1..ee7b96d 100644
--- a/doc/info/Expressions.texi
+++ b/doc/info/Expressions.texi
@@ -3,7 +3,6 @@
* Nouns and Verbs::
* Identifiers::
* Inequality::
-* Syntax::
* Functions and Variables for Expressions::
@end menu
@@ -212,7 +211,7 @@ Examples:
@closecatbox
@c -----------------------------------------------------------------------------
-@node Inequality, Syntax, Identifiers, Expressions
+@node Inequality, Functions and Variables for Expressions, Identifiers, Expressions
@section Inequality
@c -----------------------------------------------------------------------------
@@ -221,178 +220,7 @@ Maxima has the inequality operators @code{<}, @code{<=}, @code{>=}, @code{>},
expressions.
@c -----------------------------------------------------------------------------
-@node Syntax, Functions and Variables for Expressions, Inequality, Expressions
-@section Syntax
-@c -----------------------------------------------------------------------------
-
-It is possible to define new operators with specified precedence, to undefine
-existing operators, or to redefine the precedence of existing operators. An
-operator may be unary prefix or unary postfix, binary infix, n-ary infix,
-matchfix, or nofix. "Matchfix" means a pair of symbols which enclose their
-argument or arguments, and "nofix" means an operator which takes no arguments.
-As examples of the different types of operators, there are the following.
-
-@table @asis
-@item unary prefix
-negation @code{- a}
-@item unary postfix
-factorial @code{a!}
-@item binary infix
-exponentiation @code{a^b}
-@item n-ary infix
-addition @code{a + b}
-@item matchfix
-list construction @code{[a, b]}
-@end table
-
-(There are no built-in nofix operators; for an example of such an operator,
-see @code{nofix}.)
-
-The mechanism to define a new operator is straightforward. It is only necessary
-to declare a function as an operator; the operator function might or might not
-be defined.
-
-An example of user-defined operators is the following. Note that the explicit
-function call @code{"dd" (a)} is equivalent to @code{dd a}, likewise
-@code{"<-" (a, b)} is equivalent to @code{a <- b}. Note also that the functions
-@code{"dd"} and @code{"<-"} are undefined in this example.
-
-@c ===beg===
-@c prefix ("dd");
-@c dd a;
-@c "dd" (a);
-@c infix ("<-");
-@c a <- dd b;
-@c "<-" (a, "dd" (b));
-@c ===end===
-@example
-(%i1) prefix ("dd");
-(%o1) dd
-(%i2) dd a;
-(%o2) dd a
-(%i3) "dd" (a);
-(%o3) dd a
-(%i4) infix ("<-");
-(%o4) <-
-(%i5) a <- dd b;
-(%o5) a <- dd b
-(%i6) "<-" (a, "dd" (b));
-(%o6) a <- dd b
-@end example
-
-The Maxima functions which define new operators are summarized in this table,
-stating the default left and right binding powers (lbp and rbp, respectively).
-@c REWORK FOLLOWING COMMENT.
-@c IT'S NOT CLEAR ENOUGH, GIVEN THAT IT'S FAIRLY IMPORTANT
-(Binding power determines operator precedence. However, since left and right
-binding powers can differ, binding power is somewhat more complicated than
-precedence.) Some of the operation definition functions take additional
-arguments; see the function descriptions for details.
-
-@c MAKE ANCHORS FOR ALL 6 FUNCTIONS AND CHANGE @code TO @ref ACCORDINGLY
-@table @code
-@item prefix
-rbp=180
-@item postfix
-lbp=180
-@item infix
-lbp=180, rbp=180
-@item nary
-lbp=180, rbp=180
-@item matchfix
-(binding power not applicable)
-@item nofix
-(binding power not applicable)
-@end table
-
-For comparison, here are some built-in operators and their left and right
-binding powers.
-
-@example
-Operator lbp rbp
-
- : 180 20
- :: 180 20
- := 180 20
- ::= 180 20
- ! 160
- !! 160
- ^ 140 139
- . 130 129
- * 120
- / 120 120
- + 100 100
- - 100 134
- = 80 80
- # 80 80
- > 80 80
- >= 80 80
- < 80 80
- <= 80 80
- not 70
- and 65
- or 60
- , 10
- $ -1
- ; -1
-@end example
-
-@mref{remove} and @mref{kill} remove operator properties from an atom...
[truncated message content] |