[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Question on function type spec and lambda-list keywords
- To: RpKemail@example.com
- Subject: Question on function type spec and lambda-list keywords
- From: firstname.lastname@example.org
- Date: Tue, 18 Aug 87 11:44 est
- Cc: email@example.com
Date: Mon, 3 Aug 87 12:39 EDT
Is the ftype of +
(function (&rest number) number)
(function (&rest list) number)
I would assume the former (since &rest args are always of type list), but
there aren't any examples in CLtL that make this clear.
This seems a bit wierd, but I'd assume the latter, since
(function (&rest (list-of number)) number)
seems right. Unfortunately, common lisp's type language doens't
allow parameterized types of this sort, so you can't really express this.
Other programming languages allow this sort of type construction.
You could do:
(deftype list-of-number ()
(defun list-of-number-p (x)
(or (null x)
(and (consp x)
(numberp (car x))
(list-of-number-p (cdr x))))
(proclaim '(ftype + (function (&rest list-of-number) number)))
since we're using "satisfies" here, I don't see how this could
be useful tho.