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

FUNCTION type specifier



In the description of typep, the following statement seems to need
clarification.

"The type may be any of the type specifiers mentioned in chapter 4
expcept that it may not be or contain a type specifier list whose
first element is FUNCTION or VALUES."

What is the correct interpretation of this statment or its intention?
I am not an expert on English (is anyone?), but I believe this means
that type may not be FUNCTION or VALUES or a type specifier list whose 
first element is FUNCTION or VALUES.  Based on this interpretation I would
assume the following examples are not valid.

	(typep x 'function)
	(typep x '(function (t) t))
	(typep x 'values)
	(typep x '(values t t t))

I believe the first example is quite useful - it is equivalent to

	(typep x '(satisfies functionp))

However the second example may not be easy to handle without requiring
implementations to keep a lot of information around.  I assume the
restriction was made to simplify implementation for this reason.  Was
it really intended to eliminate the useful form as well?  Some (maybe all)
implementations do accept the simple FUNCTION type specifier.  

Dave Matthews  
Hewlett-Packard Company  
dcm%hpfclp@hplabs