.he 'LAMBDA''Page %'
.fo 'Steven Hardy''January 78'
LAMBDA
.br
------
.br
This word tells the compiler to build a function (much as "[" tells it
to build a list).  The function built is left on the stack, thus:
 	: LAMBDA (X); X+1 END =>
 	** <FUNCTION>
.br
Usually we will want to do something with the function, for example:
 	: LAMBDA (X); X+1 END(3) =>
 	** 4
 	: MAPLIST([10 3 7], LAMBDA (X); X+1 END) =>
 	** [11 4 8]
.br
Frequently we want to assign a function to a variable, thus:
 	: VARS ADDONE;
 	: LAMBDA (X); X+1 END -> ADDONE;
 	: ADDONE(3) =>
 	** 4
.br
POP11 provides some 'syntactic sugar' for a combined declaration of
a variable and assignment to the variable:-
 	: FUNCTION ADDONE(X); X + 1 END;
.br
is a neater way of saying
that you want the variable ADDONE declared and to have a function as its value.
i.e. it declares a variable and assigns as its value a function.  (N.B.
FUNCTION also stores the name of the new function in its
FNPROPS, which is useful for debugging).  LAMBDA
notation is most frequently used when passing functions as arguments;
for examples of this use of the LAMBDA notation see
MAPLIST in SYSVARS.
