123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- \section{General Commands}
- \begin{Command}{BYE}
- The \name{bye} command ends the REDUCE session, returning control to the
- program (e.g., the operating system) that called REDUCE. When you are at
- the top level, the \name{bye} command exits REDUCE. \name{quit} is a
- synonym for \name{bye}.
- \end{Command}
- \begin{Command}{CONT}
- The command \name{cont} returns control to an interactive file after a
- \nameref{pause} command that has been answered with \name{n}.
- \begin{Examples}
- \explanation{Suppose you are in the middle of an interactive file.} \\
- & factorize(x**2 + 17*x + 60); \\
- & \{\{X + 12,1\},\{X + 5,1\}\} \\
- pause; & Cont? (Y or N) \\
- n \\
- saveas results; \\
- factor1 := first results; & FACTOR1 := \{X + 12,1\} \\
- factor2 := second results; & FACTOR2 := \{X + 5,1\} \\
- cont; & \explanationo{\em the file resumes}
- \end{Examples}
- \begin{Comments}
- A \nameref{pause} allows you to enter your own REDUCE commands, change
- switch values, inquire about results, or other such activities. When you
- wish to resume operation of the interactive file, use \name{cont}.
- \end{Comments}
- \end{Command}
- \begin{Command}{DISPLAY}
- \index{history}\index{interactive}
- When given a numeric argument \meta{n}, \name{display} prints the \meta{n}
- most recent input statements, identified by prompt numbers. If an empty
- pair of parentheses is given, or if \meta{n} is greater than the current
- number of statements, all the input statements since the beginning of
- the session are printed.
- %%%INCONSISTENT??? {\em or}
- \begin{Syntax}
- \name{display}\(\meta{n}\) {\em or} \name{display}\(\)
- \end{Syntax}
- \meta{n} should be a positive integer. However, if it is a real number, the
- truncated integer value is used, and if a non-numeric argument is used, all
- the input statements are printed.
- \begin{Comments}
- The statements are displayed in upper case, with lines split at semicolons or
- dollar signs, as they are in editing. If long files have been input during
- the session, the \name{display} command is slow to format these for
- printing.
- \end{Comments}
- \end{Command}
- \begin{Command}{LOAD\_PACKAGE}
- \index{package}
- The \name{load\_package} command is used to load REDUCE packages, such as
- \name{gentran} that are not automatically loaded by the system.
- \begin{Syntax}
- \name{load\_package "}\meta{package\_name}\name{"}
- \end{Syntax}
- %%% We should probably list the names of the packages here.
- A package is only loaded once; subsequent calls of \name{load\_package}
- for the same package name are ignored.
- \end{Command}
- \begin{Command}{PAUSE}
- \index{interactive}
- The \name{pause} command, given in an interactive file, stops operation and
- asks if you want to continue or not.
- \begin{Examples}
- \explanation{An interactive file is running, and at some point you see the
- question} \\
- Cont? (Y or N) \\
- \explanation{If you type} \\
- y\key{Return}\\
- \explanation{the file continues to run until the next pause or the end.} \\
- \explanation{If you type } \\
- n\key{Return} \\
- \explanation{you will get a numbered REDUCE prompt, and be allowed to
- enter and execute any REDUCE statements. If you later wish to continue with
- the file, type} \\
- cont; \\
- \explanation{and the file resumes.}
- \end{Examples}
- To use \name{pause} in your own interactive files, type
- \name{pause;}
- in the file wherever you want it.
- \begin{Comments}
- \name{pause} does not allow you to continue without typing either \name{y}
- or \name{n}. Its use is to slow down scrolling of interactive files, or to
- let you change parameters or switch settings for the calculations.
- If you have stopped an interactive file at a \name{pause,} and do not wish to
- resume the file, type \name{end;}. This does not end the REDUCE session, but
- stops input from the file. A second \name{end;} ends the REDUCE session.
- However, if you have pauses from more than one file stacked up, an \name{end;}
- brings you back to the top level, not the file directly above.
- A \name{pause} typed from the terminal has no effect.
- \end{Comments}
- \end{Command}
- \begin{Command}{QUIT}
- The \name{quit} command ends the REDUCE session, returning control to the
- program (e.g., the operating system) that called REDUCE. When you are at
- the top level, the \name{quit} command exits REDUCE. \nameref{bye} is a
- synonym for \name{quit}.
- \end{Command}
- \begin{Operator}{RECLAIM}
- \index{memory}
- \begin{Comments}
- REDUCE's memory is in a storage structure called a heap. As REDUCE
- statements execute, chunks of memory are used up. When these chunks are no
- longer needed, they remain idle. When the memory is almost full,
- the system executes a garbage collection, reclaiming space that is no
- longer needed, and putting all the free space at one end. Depending on
- the size of the image REDUCE is using,
- garbage collection needs to be done more or less often. A
- larger image means fewer but longer garbage collections.
- Regardless of memory size,
- if you ask REDUCE to do something ridiculous, like \name{factorial(2000)}, it may
- garbage collect many times.
- \end{Comments}
- \end{Operator}
- \begin{Command}{REDERR}
- \index{error handling}
- The \name{rederr} command allows you to print an error message from inside
- a \nameref{procedure} or a \nameref{block} statement.
- The calculation is gracefully terminated.
- \begin{Syntax}
- \name{rederr} \meta{message}
- \end{Syntax}
- \meta{message} is an error message, usually inside double quotation marks
- (a \nameref{string}).
- \begin{Examples}
- \begin{multilineinput}
- procedure fac(n);
- if not (fixp(n) and n>=0)
- then rederr "Choose nonneg. integer only"
- else for i := 0:n-1 product i+1;
- \end{multilineinput} &
- fac \\
- fac a; &
- ***** Choose nonneg. integer only \\
- fac 5; & 120
- \end{Examples}
- \begin{Comments}
- The above procedure finds the factorial of its argument.
- If n is not a positive integer or 0, an error message is returned.
- If your procedure is executed in a file, the usual error message is
- printed, followed by \name{Cont? (Y or N)}, just as any other error does from
- a file. Although the procedure is gracefully terminated, any switch settings or
- variable assignments you made before the error occurred are not undone. If you
- need to clean up such items before exiting, use a group statement, with the
- \name{rederr} command as its last statement.
- \end{Comments}
- \end{Command}
- \begin{Command}{RETRY}
- \index{interactive}
- The \name{retry} command allows you to retry the latest statement that resulted
- in an error message.
- \begin{Examples}
- matrix a; \\
- det a; & ***** Matrix A not set \\
- a := mat((1,2),(3,4)); & \begin{multilineoutput}{6cm}
- A(1,1) := 1
- A(1,2) := 2
- A(2,1) := 3
- A(2,2) := 4
- \end{multilineoutput}\\
- retry; & -2
- \end{Examples}
- \begin{Comments}
- \name{retry} remembers only the most recent statement that resulted in an
- error message. It allows you to stop and fix something obvious, then
- continue on your way without retyping the original command.
- \end{Comments}
- \end{Command}
- \begin{Command}{SAVEAS}
- The \name{saveas} command saves the current workspace under the name of its
- argument.
- \begin{Syntax}
- \name{saveas} \meta{identifier}
- \end{Syntax}
- \meta{identifier} can be any valid REDUCE identifier.
- \begin{Examples}
- \explanation{(The numbered prompts are shown below, unlike in most examples)}\\
- 1: solve(x^2-3);&
- \{x=sqrt(3),x= - sqrt(3)\}\\
- 2: saveas rts(0)\$\\
- 3: rts(0);&
- \{x=sqrt(3),x= - sqrt(3)\}\\
- \end{Examples}
- \begin{Comments}
- \name{saveas} works only for the current workspace, the last algebraic
- expression produced by REDUCE. This allows you to save a result that you
- did not assign to an identifier when you originally typed the input.
- For access to previous output use \nameref{ws}.
- \end{Comments}
- \end{Command}
- \begin{Command}{SHOWTIME}
- \index{time}
- The \name{showtime} command prints the elapsed system time since the last
- call of this command or since the beginning of the session, if it has not
- been called before.
- \begin{Examples}
- showtime; & Time: 1020 ms \\
- factorize(x^4 - 8x^4 + 8x^2 - 136x - 153);
- & \{X - 9,X^{2} + 17,X + 1\} \\
- showtime; & Time: 920 ms
- \end{Examples}
- \begin{Comments}
- The time printed is either the elapsed cpu time or the elapsed wall clock
- time, depending on your system. \name{showtime} allows you to see the
- system time resources REDUCE uses in its calculations. Your time readings
- will of course vary from this example according to the system you use.
- \end{Comments}
- \end{Command}
- \begin{Command}{WRITE}
- \index{output}
- The \name{write} command explicitly writes its arguments to the output device
- (terminal or file).
- \begin{Syntax}
- \name{write} \meta{item}\{,\meta{item}\}\optional
- \end{Syntax}
- \meta{item} can be an expression, an assignment or a \nameref{string}
- enclosed in double quotation marks (\name{"}).
- \begin{Examples}
- write a, sin x, "this is a string"; & ASIN(X)this is a string \\
- write a," ",sin x," this is a string"; & A SIN(X) this is a string \\
- if not numberp(a) then write "the symbol ",a;
- & the symbol A \\
- array m(10); \\
- for i := 1:5 do write m(i) := 2*i; &
- \begin{multilineoutput}{6cm}
- M(1) := 2
- M(2) := 4
- M(3) := 6
- M(4) := 8
- M(5) := 10
- \end{multilineoutput}\\
- m(4); & 8
- \end{Examples}
- \begin{Comments}
- The items specified by a single \name{write} statement print on a single line
- unless they are too long. A printed line is always ended with a carriage
- return, so the next item printed starts a new line.
- When an assignment statement is printed, the assignment is also made. This
- allows you to get feedback on filling slots in an array with a \nameref{for}
- statement, as shown in the last example above.
- \end{Comments}
- \end{Command}
|