[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Label



The Y-Operator need not be primitive since it is possible to construct
one from smaller primitives. There is no breach in power, pure recursive
or otherwise, by having removed LABEL. Its implementation was a crock and
it is not clear that it could be fixed at all given the current calling
procedures. 

I personally would suggest you do a construct like the following when you
think you need LABEL...

((LAMBDA (ANONYMOUS)
  ... body using (FUNCALL ANONYMOUS ...) where appropriate ...)
 (FUNCTION (LAMBDA (X)
		   (SPECIAL ANONYMOUS)
		   (COND ((ZEROP X) 1)
			 (T (* X (FUNCALL ANONYMOUS (1- X))))))))

This will not confuse the compiler and is not utterly inelegant from
a purist standpoint. The FUNCALL operator has a lot of aesthetic value
in its own right.

--kmp