Basic Functions of writtenPAM
The functions first and rest operate on text-graphic patterns. first
returns a copy of the first text-graphic object in a pattern, and rest
returns a copy of the remainder of the pattern.
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, and tg.Tree structure is represented by fine
lines, sometimes terminated by the empty pattern symbol
for clarity. In a sense, this whole paper is just a note on the consequences of a tree notation
for visual objects that allows the generalization of LISP to text-graphic forms.
patcons is the pattern constructor. It takes two arguments, the second of
which must be a pattern. patcons returns a new pattern constructed by
putting its first argument onto the front of its second argument.
Then there are the three spatial functions, locate, rotate and scale.
locate takes two arguments, an object and a new location. It returns a
copy of the object at the new location.
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.