#### 1.1.2 Invoking a procedure ¶

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`.