Artifact be26d23821c26f0ec6da11895c522a79507eaa323b72aeeed1d96e6a2947bfaa:
- File
r36/help/IO.TEX
— part of check-in
[152fb3bdbb]
at
2011-10-17 17:58:33
on branch master
— svn:eol-style, svn:executable and line endings for files
in historical/r36 treegit-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1480 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: schoepf@users.sourceforge.net, size: 5580) [annotate] [blame] [check-ins using] [more...]
\section{Input and Output} \begin{Command}{IN} \index{input} The \name{in} command takes a list of file names and inputs each file into the system. \begin{Syntax} \name{in} \meta{filename}\{,\meta{filename}\}\optional \end{Syntax} \meta{filename} must be in the current directory, or be a valid pathname. If the file name is not an identifier, double quote marks (\name{"}) are needed around the file name. \begin{Comments} A message is given if the file cannot be found, or has a mistake in it. Ending the command with a semicolon causes the file to be echoed to the screen; ending it with a dollar sign does not echo the file. If you want some but not all of a file echoed, turn the switch \nameref{echo} on or off in the file. An efficient way to develop procedures in REDUCE is to write them into a file using a system editor of your choice, and then input the files into an active REDUCE session. REDUCE reparses the procedure as it takes information from the file, overwriting the previous procedure definition. When it accepts the procedure, it echoes its name to the screen. Data can also be input to the system from files. Files to be read in should always end in \nameref{end}\name{;} to avoid end-of-file problems. Note that this is an additional \name{end;} to any ending procedures in the file. \end{Comments} \end{Command} \begin{Command}{INPUT} \index{interactive} The \name{input} command returns the input expression to the REDUCE numbered prompt that is its argument. \begin{Syntax} \name{input}\(\meta{number}\) or \name{input} \meta{number} \end{Syntax} \meta{number} must be between 1 and the current REDUCE prompt number. %%%\begin{Examples} %%%\explanation{(In the following examples, unlike most others, the numbered %%%prompt is shown.)} %%%\end{Examples} \begin{Comments} An expression brought back by \name{input} can be reexecuted with new values or switch settings, or used as an argument in another expression. The command \nameref{ws} brings back the results of a numbered REDUCE statement. Two lists contain every input and every output statement since the beginning of the session. If your session is very long, storage space begins to fill up with these expressions, so it is a good idea to end the session once in a while, saving needed expressions to files with the \nameref{saveas} and \nameref{out} commands. %%% You can also clear the history lists with the \name{forget} command. Switch settings and \nameref{let} statements can also be reexecuted by using \name{input}. An error message is given if a number is called for that has not yet been used. \end{Comments} \end{Command} \begin{Command}{OUT} \index{output}\index{open} The \name{out} command directs output to the filename that is its argument, until another \name{out} changes the output file, or \nameref{shut} closes it. \begin{Syntax} \name{out} \meta{filename} or \name{out "}\meta{pathname} \name{"} or \name{out t} \end{Syntax} \meta{filename} must be in the current directory, or be a valid complete file description for your system. If the file name is not in the current directory, quote marks are needed around the file name. If the file already exists, a message is printed allowing you to decide whether to supersede the contents of the file with new material. \begin{Comments} To restore output to the terminal, type \name{out t}, or \nameref{shut} the file. When you use \name{out t}, the file remains available, and if you open it again (with another \name{out}), new material is appended rather than overwriting. To write a file using \name{out} that can be input at a later time, the switch \nameref{nat} must be turned off, so that the standard linear form is saved that can be read in by \nameref{in}. If \name{nat} is on, exponents are printed on the line above the expression, which causes trouble when REDUCE tries to read the file. There is a slight complication if you are using the \name{out} command from inside a file to create another file. The \nameref{echo} switch is normally off at the top-level and on while reading files (so you can see what is being read in). If you create a file using \name{out} at the top-level, the result lines are printed into the file as you want them. But if you create such a file from inside a file, the \name{echo} switch is on, and every line is echoed, first as you typed it, then as REDUCE parsed it, and then once more for the file. Therefore, when you create a file {\it from} a file, you need to turn \name{echo} off explicitly before the \name{out} command, and turn it back on when you \name{shut} the created file, so your executing file echoes as it should. This behavior also means that as you watch the file execute, you cannot see the lines that are being put into the \name{out} file. As soon as you turn \name{echo} on, you can see output again. \end{Comments} \end{Command} \begin{Command}{SHUT} \index{output}\index{close} The \name{shut} command closes output files. \begin{Syntax} \name{shut} \meta{filename}\{,\meta{filename}\}\optional \end{Syntax} \meta{filename} must have been a file opened by \nameref{out}. \begin{Comments} A file that has been opened by \nameref{out} must be \name{shut} before it is brought in by \nameref{in}. Files that have been opened by \name{out} should always be \name{shut} before the end of the REDUCE session, to avoid either loss of information or the printing of extraneous information into the file. In most systems, terminating a session by \nameref{bye} closes all open output files. \end{Comments} \end{Command}