(FILECREATED "16-Jul-86 01:24:44" {ERIS}<LISPCORE>EVAL>CMLSEQCOMMON.;1 1578
changes to: (FUNCTIONS MAKE-SEQUENCE-LIKE)
previous date: " 2-Jul-86 18:01:08" {ERIS}<LISPCORE>LIBRARY>CMLSEQCOMMON.;2)
(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT CMLSEQCOMMONCOMS)
(RPAQQ CMLSEQCOMMONCOMS ((FUNCTIONS MAKE-SEQUENCE-LIKE SEQ-DISPATCH TYPE-SPECIFIER)
(PROP FILETYPE CMLSEQCOMMON)))
(DEFMACRO MAKE-SEQUENCE-LIKE (SEQUENCE LENGTH)
"Returns a sequence of the same type as SEQUENCE and the given LENGTH."
(BQUOTE (LET ((SEQ (\, SEQUENCE)))
(ETYPECASE SEQ (LIST (MAKE-LIST (\, LENGTH)))
(STRING (MAKE-STRING (\, LENGTH)))
(ARRAY (MAKE-ARRAY (\, LENGTH)
:ELEMENT-TYPE
(ARRAY-ELEMENT-TYPE SEQ)))))))
(DEFMACRO SEQ-DISPATCH (SEQUENCE LIST-FORM VECTOR-FORM) (BQUOTE (ETYPECASE (\, SEQUENCE)
(LIST (\, LIST-FORM))
(VECTOR (\, VECTOR-FORM)))))
(DEFMACRO TYPE-SPECIFIER (TYPE) "Returns the broad class of which TYPE is a specific subclass."
(BQUOTE (CL:IF (CL:ATOM (\, TYPE))
(\, TYPE)
(CAR (\, TYPE)))))
(PUTPROPS CMLSEQCOMMON FILETYPE COMPILE-FILE)
(PUTPROPS CMLSEQCOMMON COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
(FILEMAP (NIL)))
STOP