**Basic Functions of writtenPAM**

The functions ** first** and

`rest`

`first`

`rest`

A word about the notation conventions used here. Text-graphic objects themselves are drawn
with thick black lines, e.g. , ,
and , and are quoted when appropriate using or . Algorithms are presented with a
"blackboard notation" Algol-like syntax; bold fixed width font is used for function and
variable names like ** first**,

`rest`

`patcons`

`tg`

** patcons** is the pattern constructor. It takes two arguments, the second of
which must be a pattern.

`patcons`

Then there are the three spatial functions, ** locate**,

`rotate`

`scale`

`locate`

** rotate** also takes two arguments, an object and the number of degrees
the object is to be rotated. It returns a copy of the object rotated
clockwise through the angle specified.

And ** scale** takes two arguments, an object and the factor by which the
object is to be scaled. It returns a copy of the object scaled by that
factor.