Macro Def-Gmap-Arg-Type
(
def-gmap-arg-type name
args
&body
body
)
Defines a GMap arg-type. Syntax is identical to defun
. The body should
return a list of 1 to 5 elements: (0, init) the initial value of the
state variable; (1, exitp), if non-nil, a function of one argument which
is called on the state variable, a true result causing the iteration to
exit; (2, argfn), if non-nil, a function of one argument which is called
on the state variable to get the value to be used on this iteration; (3,
nextfn), if non-nil, a function of one argument which is called on the
state variable to get the new value of same; and (4, let-specs) a list of
clauses for an nlet
that will wrapped around the entire expansion.
It is also possible for an arg-type to generate multiple arguments. If
element 2, argfn, is of the form (:values N FN)
, FN should be a function
returning N values, which will be passed as separate arguments to the function
being mapped.