(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP") (FILECREATED "14-Apr-88 12:37:05" {ERINYES}<LISPUSERS>LYRIC>UTILISOPRS.\;1 2918 |changes| |to:| (FNS |FIntersection| |FUnion|) |previous| |date:| "24-Mar-87 19:54:30" |{XDE:MCS:STANFORD}<LISPUSERS>LYRIC>UTILISOPRS.;1|) ; Copyright (c) 1988 by Xerox Corporation. All rights reserved. (PRETTYCOMPRINT UTILISOPRSCOMS) (RPAQQ UTILISOPRSCOMS ((I.S.OPRS COLLECTWHEN INTERSECT MAXIMIZE MINIMIZE REPEATEACHTIME UNION UNIQUE YIELD FIRSTTIME |fintersect| |funion|) (ADDVARS (LOCALVARS $$STATE $$TMP $$UIV $$UNQ $$FLTR) (SYSLOCALVARS $$STATE $$TMP $$UIV $$UNQ $$FLTR)) (FNS |FIntersection| |FUnion|))) (DECLARE\: EVAL@COMPILE (I.S.OPR 'COLLECTWHEN NIL '(|bind| $$FLTR |when| (SETQ $$FLTR BODY) |collect| $$FLTR)) (I.S.OPR 'INTERSECT '(PROGN (INTBOD ← BODY) (OR ($$VAL ← (COND ($$VAL (INTERSECTION $$VAL INTBOD)) (T INTBOD))) (GO $$OUT))) '(BIND INTBOD)) (I.S.OPR 'MAXIMIZE NIL '(|largest| BODY |yield| $$EXTREME)) (I.S.OPR 'MINIMIZE NIL '(|smallest| BODY |yield| $$EXTREME)) (I.S.OPR 'REPEATEACHTIME NIL '(|repeatuntil| (PROGN BODY NIL))) (I.S.OPR 'UNION '($$VAL ← (UNION $$VAL BODY))) (I.S.OPR 'UNIQUE '(|if| $$VAL |then| ($$VAL← NIL) (GO $$OUT) |else| $$VAL ← $$UNQ $$UIV ← I.V.) '(|bind| ($$UNQ $$UIV) |when| $$UNQ ← BODY |finally| (I.V.← (AND $$VAL $$UIV)))) (I.S.OPR 'YIELD NIL '(FINALLY (RETURN BODY))) (I.S.OPR 'FIRSTTIME NIL '(|bind| ($$MEMO ← T) |unless| (AND $$MEMO (PROGN BODY T) (SETQ $$MEMO NIL)))) (I.S.OPR '|fintersect| '(PROGN (INTBOD ← BODY) (OR ($$VAL ← (COND ($$VAL (|FIntersection| $$VAL INTBOD)) (T INTBOD))) (GO $$OUT))) '(BIND INTBOD)) (I.S.OPR '|funion| '($$VAL ← (|FUnion| $$VAL BODY))) ) (ADDTOVAR LOCALVARS $$STATE $$TMP $$UIV $$UNQ $$FLTR) (ADDTOVAR SYSLOCALVARS $$STATE $$TMP $$UIV $$UNQ $$FLTR) (DEFINEQ (|FIntersection| (LAMBDA (X Y) (* TAL "27-OCT-82 17:54") (|for| |item| |in| X |when| (FMEMB |item| Y) |collect| |item|))) (|FUnion| (LAMBDA (X Y) (* TAL "28-OCT-82 12:00") (|bind| (|tmp| ← Y) |for| |item| |in| X |unless| (FMEMB |item| |tmp|) |do| (|push| |tmp| |item|) |finally| (RETURN |tmp|)))) ) (PUTPROPS UTILISOPRS COPYRIGHT ("Xerox Corporation" 1988)) (DECLARE\: DONTCOPY (FILEMAP (NIL (2350 2836 (|FIntersection| 2360 . 2560) (|FUnion| 2562 . 2834))))) STOP