[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
commonlisp types
- To: RWK@F.ILA.Dialnet.Symbolics.COM
- Subject: commonlisp types
- From: Jon L White <jonl@lucid.com>
- Date: Wed, 4 Jan 89 00:58:57 PST
- Cc: common-lisp@sail.stanford.edu
- In-reply-to: Robert W. Kerns's message of Tue, 3 Jan 89 05:35 EST <19890103103558.4.RWK@F.ILA.Dialnet.Symbolics.COM>
re: How do you define "valid type specifier"?
Very syntactically. I think its perfectly acceptable to have a set
of combination rules for making "words" in the type-specifier syntax,
even though some such "words" would be gibberish.
The important thing is that base-level types -- those defined in
CLtL -- along with DEFSTRUCT extensions be recognizable. They don't
have the problems that SATISFIES generates, or that a broken user
definition generates (such as your DEFTYPE FOO example).
By the bye, on another note, I haven't seen any implementation that
has the bug Kent wondered about earlier:
(defun bar (x) (symbolp x))
(defun foo (x)
(flet ((bar (y) (integerp y)))
(typep x '(satisfies bar))))
(foo 'x)
The correct answer is T, but I bet a lot of implementations return NIL
in compiled code.
Anyone know of an implementation for which this fails?
-- JonL --