(FILECREATED "30-Jun-86 13:54:12" ("compiled on " {ERIS}LIBRARY>CMLLIST.;22) "23-Jun-86 18:04:30" recompiled changes: CL:NTH NTHCDR %%TEST CL:SUBST %%SUBST SUBST-IF %%SUBST-IF SUBST-IF-NOT %%SUBST-IF-NOT NSUBST %%NSUBST NSUBST-IF %%NSUBST-IF NSUBST-IF-NOT %%NSUBST-IF-NOT CL:SUBLIS %%SUBLIS NSUBLIS %%NSUBLIS CL:MEMBER %%MEMBER ADJOIN CL:UNION NUNION CL:INTERSECTION NINTERSECTION SET-DIFFERENCE NSET-DIFFERENCE SET-EXCLUSIVE-OR NSET-EXCLUSIVE-OR SUBSETP PAIRLIS CL:ASSOC %%ASSOC ASSOC-IF ASSOC-IF-NOT RASSOC RASSOC-IF RASSOC-IF-NOT in "Xerox Lisp 23-Jun-86 ..." dated "23-Jun-86 18:17:41") (FILECREATED "30-Jun-86 13:52:10" {ERIS}LIBRARY>CMLLIST.;22 53680 changes to: (FNS CL:SUBST NSUBST CL:SUBLIS NSUBLIS CL:MEMBER ADJOIN CL:UNION NUNION CL:INTERSECTION NINTERSECTION SET-DIFFERENCE NSET-DIFFERENCE SET-EXCLUSIVE-OR NSET-EXCLUSIVE-OR SUBSETP CL:ASSOC RASSOC PAIRLIS %%TEST %%SUBST %%NSUBST %%SUBLIS %%NSUBLIS %%MEMBER %%ASSOC CL:NTH NTHCDR ASSOC-IF ASSOC-IF-NOT RASSOC-IF RASSOC-IF-NOT %%SUBST-IF %%SUBST-IF-NOT %%NSUBST-IF %%NSUBST-IF-NOT SUBST-IF SUBST-IF-NOT NSUBST-IF NSUBST-IF-NOT) (FUNCTIONS TEST-KEYS-SUPPLIED NSUBLIS-MACRO) (VARS CMLLISTCOMS) previous date: "24-Jun-86 23:33:56" {ERIS}CML>CMLLIST.;8) TREE-EQUAL D1 (L (0 -args-)) j ekaqlaHlLdK#gHl_OdN#h_3IJO agLkaLl\agOkaOl_IJM (147Q %%TREE-EQUAL-TEST 67Q %%TREE-EQUAL-TEST-NOT) (117Q :TEST-NOT 74Q :TEST 33Q EQL) () %%TREE-EQUAL-TEST D1 (L (2 TEST 1 Y 0 X)) '@dAlBiA@AB @Abb(30Q %%TREE-EQUAL-TEST) NIL () %%TREE-EQUAL-TEST-NOT D1 (L (2 TEST-NOT 1 Y 0 X)) '@dAlBiA@AB @Abb(30Q %%TREE-EQUAL-TEST-NOT) NIL () ENDP D1 (I 0 OBJECT) @iho@ (20Q ERROR) NIL ( 14Q "Arg not list") LIST-LENGTH D1 (L (0 LIST)) 1j@dId H HkIJHdjhHlIJ(21Q ENDP 12Q ENDP) NIL () CL:NTH D1 (L (1 LIST 0 N)) @A (4 NTHCDR) NIL () %%SETNTH D1 (L (2 NEWVAL 1 LIST 0 N)) Bj@o@ @HjHAd o@ ABBbHkX(57Q \FZEROP 53Q CL:ERROR 40Q ENDP 13Q CL:ERROR) NIL ( 47Q "~S is too large an index for SETF of NTH." 7 "~S is an illegal N for SETF of NTH.") CL:FIRST D1 (L (0 LIST)) @NIL NIL () SECOND D1 (L (0 LIST)) @NIL NIL () THIRD D1 (L (0 LIST)) @NIL NIL () FOURTH D1 (L (0 LIST)) @NIL NIL () FIFTH D1 (L (0 LIST)) @NIL NIL () SIXTH D1 (L (0 LIST)) @NIL NIL () SEVENTH D1 (L (0 LIST)) @NIL NIL () EIGHTH D1 (L (0 LIST)) @NIL NIL () NINTH D1 (L (0 LIST)) @NIL NIL () TENTH D1 (L (0 LIST)) @NIL NIL () REST D1 (L (0 LIST)) @NIL NIL () NTHCDR D1 (L (1 LIST 0 N)) -@3 j@o@ @j AAd hb@kb(35Q ENDP 25Q %%= 17Q CL:ERROR) NIL ( 13Q "N = ~S is illegal for NTHCDR.") MAKE-LIST D1 (L (0 -args-)) SekaQHlKdJhjIoI agKkaKl[Ih]jMdd NkLN(107Q \FZEROP 43Q CL:ERROR) (50Q :INITIAL-ELEMENT) ( 37Q "~S is an illegal size for MAKE-LIST.") COPY-LIST D1 (L (0 L)) @dhHY@bdI@H&NIL NIL () COPY-ALIST D1 (L (0 ALIST)) E@d*o@ @@@h!@HYdJIHJdIdI&(15Q CL:ERROR) NIL ( 11Q "~S is not a list.") COPY-TREE D1 (L (0 OBJECT)) @d @ (14Q COPY-TREE 7 COPY-TREE) NIL () REVAPPEND D1 (L (1 Y 0 X)) @AHd IHIX(11Q ENDP) NIL () NRECONC D1 (L (1 Y 0 X)) @ A (7 \NCONC2 3 NREVERSE) NIL () BUTLAST D1 (L (0 -args-)) LekaalHklajJjI kջJKhIIh]K_J MNdL&LOkհ(66Q %%= 35Q LENGTH) NIL () NBUTLAST D1 (L (0 -args-)) Eeka!lHklajJjI kջJKhIIKNJ MhILLNkվ(62Q %%= 35Q LENGTH) NIL () CL:LDIFF D1 (L (1 SUBLIST 0 LIST)) @!hhYHHAIJdH&HXNIL NIL () %%TEST D1 (L (4 KEY 3 TEST-NOT 2 TEST 1 KEYITEM 0 ITEM)) B@AkDlBC@AkDlCh(34Q SHOULDNT) NIL () CL:SUBST D1 (L (0 -args-)) eka lalaHlMdLAhHl__OdO@h_Hl__OdO@h_NPOJo JagMkaMl]agOkaOl_agOkaOl_NOg^Og_IJKNOO (270Q %%SUBST 130Q CL:ERROR) (251Q IDENTITY 241Q EQL 207Q :KEY 161Q :TEST-NOT 136Q :TEST) ( 125Q "Both TEST and TEST-NOT supplied.") %%SUBST D1 (L (5 KEY 4 TEST-NOT 3 TEST 2 TREE 1 OLD 0 NEW)) =ABCDE @BB@ABCDE @ABCDE HdBIBBHI(46Q %%SUBST 33Q %%SUBST 10Q %%TEST) NIL () SUBST-IF D1 (L (0 -args-)) <ekaQlalaHlMdLgIJKN agMkaMl](46Q %%SUBST-IF) (53Q :KEY 36Q IDENTITY) () %%SUBST-IF D1 (L (3 KEY 2 TREE 1 TEST 0 NEW)) 5BdkCkA@B@ABC @ABC HdBIBBHI(36Q %%SUBST-IF 26Q %%SUBST-IF) NIL () SUBST-IF-NOT D1 (L (0 -args-)) <ekaQlalaHlMdLgIJKN agMkaMl](46Q %%SUBST-IF-NOT) (53Q :KEY 36Q IDENTITY) () %%SUBST-IF-NOT D1 (L (3 KEY 2 TREE 1 TEST 0 NEW)) 5BdkCkA@B@ABC @ABC HdBIBBHI(36Q %%SUBST-IF-NOT 26Q %%SUBST-IF-NOT) NIL () NSUBST D1 (L (0 -args-)) eka lalaHlMdLAhHl__OdO@h_Hl__OdO@h_NPOJo JagMkaMl]agOkaOl_agOkaOl_NOg^Og_IJKNOO (270Q %%NSUBST 130Q CL:ERROR) (251Q IDENTITY 241Q EQL 207Q :KEY 161Q :TEST-NOT 136Q :TEST) ( 125Q "Both TEST and TEST-NOT supplied.") %%NSUBST D1 (L (5 KEY 4 TEST-NOT 3 TEST 2 TREE 1 OLD 0 NEW)) 90ABCDE @BXBAHCDE H@JI@AHCDE H(62Q %%NSUBST 36Q %%TEST 13Q %%TEST) NIL () NSUBST-IF D1 (L (0 -args-)) <ekaQlalaHlMdLgIJKN agMkaMl](46Q %%NSUBST-IF) (53Q :KEY 36Q IDENTITY) () %%NSUBST-IF D1 (L (3 KEY 2 TREE 1 TEST 0 NEW)) QBdkCkA@BB]dkCkAH@JIkCkAH@LKBM_@AMC ONMX(104Q %%NSUBST-IF) NIL () NSUBST-IF-NOT D1 (L (0 -args-)) <ekaQlalaHlMdLgIJKN agMkaMl](46Q %%NSUBST-IF-NOT) (53Q :KEY 36Q IDENTITY) () %%NSUBST-IF-NOT D1 (L (3 KEY 2 TREE 1 TEST 0 NEW)) QBdkCkA@BB]dkCkAH@JIkCkAH@LKBM_@AMC ONMX(104Q %%NSUBST-IF-NOT) NIL () CL:SUBLIS D1 (L (0 -args-)) eka laHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_IJMOO (260Q %%SUBLIS 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") %%SUBLIS D1 (L (4 KEY 3 TEST-NOT 2 TEST 1 TREE 0 ALIST)) <A@BCD AA@ABCD @ABCD HdAIAAHI(45Q %%SUBLIS 33Q %%SUBLIS 10Q %%ASSOC) NIL () NSUBLIS D1 (L (0 -args-)) eka laHlLdK?hHl_OdNAh_Hl__OdOAh_OQOJo LagLkaLl\agOkaOl_agOkaOl_OOg_MgIJOOM (260Q %%NSUBLIS 122Q CL:ERROR) (244Q IDENTITY 234Q EQL 201Q :TEST-NOT 153Q :TEST 130Q :KEY) ( 117Q "Both TEST and TEST-NOT supplied.") %%NSUBLIS D1 (L (4 KEY 3 TEST-NOT 2 TEST 1 TREE 0 ALIST)) d A@BCD AAhA]d@BCD XNHJI@BCD XNHLKAM_@MBCD _OOM^(124Q %%NSUBLIS 72Q %%ASSOC 44Q %%ASSOC 13Q %%ASSOC) NIL () CL:MEMBER D1 (L (0 -args-)) eka laHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_J_IOMOO OO(270Q %%TEST 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") %%MEMBER D1 (L (4 KEY 3 TEST-NOT 2 TEST 1 LIST 0 ITEM)) AHY@IBCD II(22Q %%TEST) NIL () MEMBER-IF D1 (L (0 -args-)) YekaQlaHlLdKgJd$agLkaLl\oJ J^d hkMkINN(106Q ENDP 77Q CL:ERROR) (50Q :KEY 32Q IDENTITY) ( 73Q "~S is not a list.") MEMBER-IF-NOT D1 (L (0 -args-)) YekaQlaHlLdKgJd$agLkaLl\oJ J^d hkMkINN(106Q ENDP 77Q CL:ERROR) (50Q :KEY 32Q IDENTITY) ( 73Q "~S is not a list.") ADJOIN D1 (L (0 -args-)) eka laHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_IdJMOO JJ(261Q %%MEMBER 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") CL:UNION D1 (L (0 -args-)) ekalaHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_I_J_O_IMOO OO_O(276Q %%MEMBER 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") NUNION D1 (L (0 -args-)) ekalaHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_I_Jd OIMOO J_O_O_OOOJZ(275Q %%MEMBER 256Q ENDP 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") CL:INTERSECTION D1 (L (0 -args-)) ekalaHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_h_I_O_JMOO OO_O(276Q %%MEMBER 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") NINTERSECTION D1 (L (0 -args-)) ekalaHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_h_Id OJMOO I_O_O_OOOIY(275Q %%MEMBER 256Q ENDP 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") SET-DIFFERENCE D1 (L (0 -args-)) ekalaHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_h_I_O_JMOO OO_O(276Q %%MEMBER 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") NSET-DIFFERENCE D1 (L (0 -args-)) ekalaHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_h_Id OJMOO I_O_O_OOOIY(275Q %%MEMBER 256Q ENDP 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") SET-EXCLUSIVE-OR D1 (L (0 -args-)) ekalaHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_h_I_ J_ O_JMOO OO_O_ IMOO O O_O(336Q %%MEMBER 303Q %%MEMBER 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") NSET-EXCLUSIVE-OR D1 (L (0 -args-)) $ekalaHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_Ih__ OJJIJh__ O_LOOkOOkOlOhOkOOkOlM#OOYOOOZOOO_(304Q ENDP 257Q ENDP 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") SUBSETP D1 (L (0 -args-)) eka laHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_I_iJMOO hO(270Q %%MEMBER 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") ACONS D1 (L (2 ALIST 1 DATUM 0 KEY)) @ABNIL NIL () PAIRLIS D1 (L (2 ALIST 1 DATA 0 KEYS)) p@AHd I BH MI GHIh[HIHd I JBMLKH I J_HIhONJo h(154Q CL:ERROR 116Q ENDP 110Q ENDP 72Q ENDP 64Q ENDP 36Q ENDP 30Q ENDP 21Q ENDP 13Q ENDP) NIL ( 151Q "PAIRLIS keys and data have different length.") CL:ASSOC D1 (L (0 -args-)) eka laHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_IJMOO (260Q %%ASSOC 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") %%ASSOC D1 (L (4 KEY 3 TEST-NOT 2 TEST 1 ALIST 0 ITEM)) #AHd h@HBCD HHX(30Q %%TEST 10Q ENDP) NIL () ASSOC-IF D1 (L (1 ALIST 0 PREDICATE)) AHd hHdk@HHX(10Q ENDP) NIL () ASSOC-IF-NOT D1 (L (1 ALIST 0 PREDICATE)) AHd hHdk@HHX(10Q ENDP) NIL () RASSOC D1 (L (0 -args-)) eka laHlLdK>hHl_OdN@h_Hl__OdO@h_MPOJo JagLkaLl\agOkaOl_agOkaOl_MOg]Og_J_d hIOMOO OO(300Q %%TEST 254Q ENDP 121Q CL:ERROR) (242Q IDENTITY 232Q EQL 200Q :KEY 152Q :TEST-NOT 127Q :TEST) ( 116Q "Both TEST and TEST-NOT supplied.") RASSOC-IF D1 (L (1 ALIST 0 PREDICATE)) AHd hHdk@HHX(10Q ENDP) NIL () RASSOC-IF-NOT D1 (L (1 ALIST 0 PREDICATE)) AHd hHdk@HHX(10Q ENDP) NIL () CL:MAPCAR D1 (L (0 -args-)) F eka!laHl2MdLNIJKgi a_OOh_Mk]O&_(46Q %%MAP) (42Q :LIST) () CL:MAPLIST D1 (L (0 -args-)) F eka!laHl2MdLNIJKgh a_OOh_Mk]O&_(46Q %%MAP) (42Q :LIST) () CL:MAPC D1 (L (0 -args-)) D eka!laHl2MdLNIJKhi a_OOh_Mk]O&_(44Q %%MAP) NIL () MAPL D1 (L (0 -args-)) D eka!laHl2MdLNIJKhd a_OOh_Mk]O&_(44Q %%MAP) NIL () MAPCAN D1 (L (0 -args-)) F eka!laHl2MdLNIJKgi a_OOh_Mk]O&_(46Q %%MAP) (42Q :NCONC) () CL:MAPCON D1 (L (0 -args-)) F eka!laHl2MdLNIJKgh a_OOh_Mk]O&_(46Q %%MAP) (42Q :NCONC) () %%MAP D1 (L (3 TAKE-CAR 2 ACCUMULATE 1 ORIGINAL-ARGLISTS 0 FUNCTION)) lA qhhYHddiBIAH_COOLO^NMO@L BdgJK g JK&Jh(130Q LAST 125Q \NCONC2 107Q APPLY 104Q NREVERSE 3 COPY-LIST) (134Q :LIST 115Q :NCONC) () DELQ D1 (L (0 -args-)) SekaQlalHjilaJh] $KLjLIMLkռN MZ JMM^M(102Q \FZEROP 40Q ENDP) NIL () (PRETTYCOMPRINT CMLLISTCOMS) (RPAQQ CMLLISTCOMS ((* * CMLLIST. Common Lisp Lists Covers all of chapter 15 -- By Kelly Roach, Larry Masinter, and Ron Fischer. *) (COMS (* Section 15.1 Conses. *) (* CAR, CDR, ..., CDDDDR (all functions on pages 262-263) are OK. *) (* CONS is OK. *) (FNS TREE-EQUAL %%TREE-EQUAL-TEST %%TREE-EQUAL-TEST-NOT)) (COMS (* Section 15.2 Lists. *) (FNS ENDP LIST-LENGTH) (COMS (FNS CL:NTH %%SETNTH) (PROP SETFN CL:NTH) (P (* MOVD in case of old references. *) (MOVD (QUOTE %%SETNTH) (QUOTE \SETNTH)))) (COMS (FNS CL:FIRST SECOND THIRD FOURTH FIFTH SIXTH SEVENTH EIGHTH NINTH TENTH REST) (* Macros to make SETF work and code optimize *) (MACROS CL:FIRST SECOND THIRD FOURTH FIFTH SIXTH SEVENTH EIGHTH NINTH TENTH REST)) (FNS NTHCDR) (* LAST LIST LIST* are OK. *) (FNS MAKE-LIST) (* APPEND is OK. *) (FNS COPY-LIST COPY-ALIST COPY-TREE REVAPPEND) (* NCONC is OK. *) (FNS NRECONC) (* CL:PUSH and CL:PUSHNEW are macros defined somewhere else. Don't know where that is. POP is OK. *) (FNS BUTLAST NBUTLAST CL:LDIFF)) (COMS (* Section 15.3 Alteration of List Structure. *) (* RPLACA RPLACD are OK. *) ) (COMS (* Section 15.4 Substitution of Expressions. *) (DECLARE: DONTCOPY DOEVAL@COMPILE (FUNCTIONS SPLICE TEST-KEYS-SUPPLIED)) (FNS %%TEST) (FNS CL:SUBST %%SUBST SUBST-IF %%SUBST-IF SUBST-IF-NOT %%SUBST-IF-NOT NSUBST %%NSUBST NSUBST-IF %%NSUBST-IF NSUBST-IF-NOT %%NSUBST-IF-NOT) (FNS CL:SUBLIS %%SUBLIS NSUBLIS %%NSUBLIS)) (COMS (* Section 15.5 Usng Lists as Sets. *) (DECLARE: DONTCOPY DOEVAL@COMPILE (FUNCTIONS SPLICE)) (FNS CL:MEMBER %%MEMBER MEMBER-IF MEMBER-IF-NOT) (PROP DMACRO CL:MEMBER) (* TAILP is OK. *) (FNS ADJOIN) (FNS CL:UNION NUNION) (FNS CL:INTERSECTION NINTERSECTION) ( FNS SET-DIFFERENCE NSET-DIFFERENCE) (FNS SET-EXCLUSIVE-OR NSET-EXCLUSIVE-OR) (FNS SUBSETP)) (COMS (* Section 15.6 Association Lists. *) (FNS ACONS PAIRLIS) (FNS CL:ASSOC %%ASSOC ASSOC-IF ASSOC-IF-NOT RASSOC RASSOC-IF RASSOC-IF-NOT)) (COMS (* Section 7.8.4 Mapping *) (FNS CL:MAPCAR CL:MAPLIST CL:MAPC MAPL MAPCAN CL:MAPCON %%MAP)) (COMS (* Stuff I'm not sure where to place yet. *) (* It seems that DELQ ASSQ MEMQ aren't part of Common Lisp but part of Spice Lisp. What functions in the system are currently depending on these functions? *) (FNS DELQ) (* CL:EVERY should be in CMLSEQ. *) (PROP DMACRO CL:EVERY) (P (MOVD (QUOTE ASSOC) (QUOTE ASSQ)) (MOVD (QUOTE FMEMB) (QUOTE MEMQ)) (* NREVERSE should be in CMLSEQ. *) (MOVD (QUOTE DREVERSE) (QUOTE NREVERSE)))) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA DELQ %%MAP CL:MAPCON MAPCAN MAPL CL:MAPC CL:MAPLIST CL:MAPCAR RASSOC-IF-NOT RASSOC-IF RASSOC ASSOC-IF-NOT ASSOC-IF %%ASSOC CL:ASSOC PAIRLIS ACONS SUBSETP NSET-EXCLUSIVE-OR SET-EXCLUSIVE-OR NSET-DIFFERENCE SET-DIFFERENCE NINTERSECTION CL:INTERSECTION NUNION CL:UNION ADJOIN MEMBER-IF-NOT MEMBER-IF %%MEMBER CL:MEMBER %%NSUBLIS NSUBLIS %%SUBLIS CL:SUBLIS %%NSUBST-IF-NOT NSUBST-IF-NOT %%NSUBST-IF NSUBST-IF %%NSUBST NSUBST %%SUBST-IF-NOT SUBST-IF-NOT %%SUBST-IF SUBST-IF %%SUBST CL:SUBST %%TEST CL:LDIFF NBUTLAST BUTLAST NRECONC REVAPPEND COPY-TREE COPY-ALIST MAKE-LIST NTHCDR REST TENTH NINTH EIGHTH SEVENTH SIXTH FIFTH FOURTH THIRD SECOND CL:FIRST %%SETNTH CL:NTH LIST-LENGTH %%TREE-EQUAL-TEST-NOT %%TREE-EQUAL-TEST TREE-EQUAL))))) (PUTPROPS CL:NTH SETFN %%SETNTH) (MOVD (QUOTE %%SETNTH) (QUOTE \SETNTH)) (PUTPROPS CL:FIRST DMACRO (= . CAR)) (PUTPROPS SECOND DMACRO (= . CADR)) (PUTPROPS THIRD DMACRO ((LIST) (CADDR LIST))) (PUTPROPS FOURTH DMACRO ((LIST) (CADDDR LIST))) (PUTPROPS FIFTH DMACRO ((LIST) (CAR (CDDDDR LIST)))) (PUTPROPS SIXTH DMACRO ((LIST) (CADR (CDDDDR LIST)))) (PUTPROPS SEVENTH DMACRO ((LIST) (CADDR (CDDDDR LIST)))) (PUTPROPS EIGHTH DMACRO ((LIST) (CADDDR (CDDDDR LIST)))) (PUTPROPS NINTH DMACRO ((LIST) (CAR (CDDDDR (CDDDDR LIST))))) (PUTPROPS TENTH DMACRO ((LIST) (CADR (CDDDDR (CDDDDR LIST))))) (PUTPROPS REST DMACRO ((LIST) (CDR LIST))) (PUTPROPS CL:MEMBER DMACRO (DEFMACRO (ITEM LIST &KEY (TEST (QUOTE (FUNCTION EQL)) TESTSUPPLIED) ( TEST-NOT NIL TESTNOTSUPPLIED) (KEY (QUOTE (FUNCTION IDENTITY)))) (* optimize simple cases) (LET (( TESTC (CONSTANTEXPRESSIONP TEST)) (KEYC (CONSTANTEXPRESSIONP KEY)) (TESTNOTC (CONSTANTEXPRESSIONP TEST-NOT)) (LISTC (CONSTANTEXPRESSIONP LIST))) (COND ((AND LISTC KEYC (EQ (CAR TESTC) (QUOTE EQL)) ( EVERY (CAR LISTC) (FUNCTION (LAMBDA (X) (NOT (NUMBERP (APPLY* (CAR KEYC) X))))))) (SETQ TESTC (QUOTE ( EQ))))) (COND ((AND TESTC KEYC TESTNOTC) (if (AND (EQ (CAR TESTC) (QUOTE EQ)) (EQ (CAR KEYC) (QUOTE IDENTITY)) (NOT TESTNOTSUPPLIED)) then (LIST (QUOTE FMEMB) ITEM LIST) else (LET ((ITERVAR (GENSYM "MEMBER")) (ITEMVAR (GENSYM "MEMBER-ITEM"))) (BQUOTE (LET ((, ITEMVAR , ITEM)) (for , ITERVAR on , LIST , (if TESTNOTSUPPLIED then (QUOTE unless) else (QUOTE when)) (, (if TESTNOTSUPPLIED then (CAR TESTNOTC) else (CAR TESTC)) (, (CAR KEYC) (CAR , ITERVAR)) , ITEMVAR) do (RETURN , ITERVAR))))))) (T ( QUOTE IGNOREMACRO)))))) (PUTPROPS CL:EVERY DMACRO (DEFMACRO (FUNCTION &REST LISTS) (LET ((GENSYM (GENSYM)) (TAIL-VARS (for X in LISTS collect (GENSYM)))) (BQUOTE (LET (((\, GENSYM) T)) (CL:DO ((\,@ (for X in LISTS as TAIL-VAR in TAIL-VARS collect (LIST TAIL-VAR X (BQUOTE (CDR (\, TAIL-VAR))))))) ((NOT (AND (\,@ TAIL-VARS))) ( \, GENSYM)) (OR (SETQ (\, GENSYM) (AND (\, GENSYM) (FUNCALL (\, FUNCTION) (\,@ (for X in TAIL-VARS collect (BQUOTE (CAR (\, X)))))))) (RETURN NIL)))))))) (MOVD (QUOTE ASSOC) (QUOTE ASSQ)) (MOVD (QUOTE FMEMB) (QUOTE MEMQ)) (MOVD (QUOTE DREVERSE) (QUOTE NREVERSE)) (PUTPROPS CMLLIST COPYRIGHT ("Xerox Corporation" 1985 1986)) NIL