A Yorick function which has side effects may sensibly be invoked as a procedure, discarding the value returned by the function, if any:
plg, sin(theta)*exp(-theta/6), theta write, file, theta, sin(theta)*exp(-theta/6) close, file |
The plg function plots a graph on your screen — in this case, three cycles of a damped sine wave. The graph is made by connecting 200 closely spaced points by straight lines.
The write function writes a two column, 200 line table of values of the same damped sine wave to the file ‘damped.txt’. Then close closes the file, making it unavailable for any further write operations.
A line which ends with a comma will be continued, to allow procedures with long argument lists. For example, the write statement could have been written:
write, file, theta, sin(theta)*exp(-theta/6) |
A procedure may be invoked with zero arguments; several graphics functions are often used in this way:
hcp fma |
The hcp function writes the current graphics window contents to a “hardcopy file” for later retrieval or printing. The fma function stands for “frame advance” — subsequent plotting commands will draw on a fresh page. Normally, plotting commands such as plg draw on top of whatever has been drawn since the previous fma.