It looks like a fine implementation of the behavior of the Scheme function, LIST?. I don't know why you'd use
(and t (isList (cdr list))) when that means the same thing as
(isList (cdr list)).
However, Common Lisp (I'll assume that's the variant you're using, since you didn't specify) has a different meaning for listp.
listp object
listp is true if its argument is a cons or the empty list (), and otherwise is false. It does not check for whether the list is a ``true list'' (one terminated by nil) or a ``dotted list'' (one terminated by a non-null atom).
Reputation Points: 1135
Solved Threads: 173
Super Senior Demiposter
Offline 2,480 posts
since Jun 2005