3.12 MAP Composite Functions

MAP(X:list, FN:function):any eval, spread
 
Applies FN to successive CDR segments of X. NIL is returned.
EXPR PROCEDURE MAP(X, FN);

  WHILE X DO << FN X; X := CDR X >>;

MAPC(X:list, FN:function):any eval, spread
 
FN is applied to successive CAR segments of list X. NIL is returned.
EXPR PROCEDURE MAPC(X, FN);

  WHILE X DO << FN CAR X; X := CDR X >>;

MAPCAN(X:list, FN:function):any eval, spread
 
A concatenated list of FN applied to successive CAR elements of X is returned.
EXPR PROCEDURE MAPCAN(X, FN);

  IFNULL X THEN NIL

ELSE NCONC(FN CAR X, MAPCAN(CDR X, FN));

MAPCAR(X:list, FN:function):any eval, spread
 
Returned is a constructed list of FN applied to each CAR of list X.
EXPR PROCEDURE MAPCAR(X, FN);

  IFNULL X THEN NIL

ELSE FN CAR X . MAPCAR(CDR X, FN);

MAPCON(X:list, FN:function):any eval, spread
 
Returned is a concatenated list of FN applied to successive CDR segments of X.
EXPR PROCEDURE MAPCON(X, FN);

  IFNULL X THEN NIL

ELSE NCONC(FN X, MAPCON(CDR X, FN));

MAPLIST(X:list, FN:function):any eval, spread
 
Returns a constructed list of FN applied to successive CDR segments of X.
EXPR PROCEDURE MAPLIST(X, FN);

  IFNULL X THEN NIL

ELSE FN X . MAPLIST(CDR X, FN);