diff --git a/books/bookvol10.pamphlet b/books/bookvol10.pamphlet index 9a74854..86f0b99 100644 --- a/books/bookvol10.pamphlet +++ b/books/bookvol10.pamphlet @@ -2166,13 +2166,13 @@ Note that this code is not included in the generated catdef.spad file. ++ Keywords: ++ References: ++ Description: -++ One-dimensional-array aggregates serves as models for one-dimensional arrays. -++ Categorically, these aggregates are finite linear aggregates +++ One-dimensional-array aggregates serves as models for one-dimensional +++ arrays. Categorically, these aggregates are finite linear aggregates ++ with the \spadatt{shallowlyMutable} property, that is, any component of ++ the array may be changed without affecting the ++ identity of the overall array. -++ Array data structures are typically represented by a fixed area in storage and -++ therefore cannot efficiently grow or shrink on demand as can list structures +++ Array data structures are typically represented by a fixed area in storage +++ and cannot efficiently grow or shrink on demand as can list structures ++ (see however \spadtype{FlexibleArray} for a data structure which ++ is a cross between a list and an array). ++ Iteration over, and access to, elements of arrays is extremely fast @@ -2436,9 +2436,9 @@ OneDimensionalArrayAggregate(S:Type): Category == ++ Keywords: ++ References: ++ Description: -++ A bag aggregate is an aggregate for which one can insert and extract objects, -++ and where the order in which objects are inserted determines the order -++ of extraction. +++ A bag aggregate is an aggregate for which one can insert and extract +++ objects, and where the order in which objects are inserted determines +++ the order of extraction. ++ Examples of bags are stacks, queues, and dequeues. BagAggregate(S:Type): Category == HomogeneousAggregate S with shallowlyMutable @@ -2727,7 +2727,8 @@ Collection(S:Type): Category == HomogeneousAggregate(S) with ++ elements \axiom{y = x} removed. ++ Note: \axiom{remove(y,c) == [x for x in c | x ^= y]}. removeDuplicates: % -> % - ++ removeDuplicates(u) returns a copy of u with all duplicates removed. + ++ removeDuplicates(u) returns a copy of u with all duplicates + ++ removed. if S has ConvertibleTo InputForm then ConvertibleTo InputForm add if % has finiteAggregate then @@ -2778,9 +2779,65 @@ Note that this code is not included in the generated catdef.spad file. (SETQ |Collection;AL| (QUOTE NIL)) -(DEFUN |Collection| (#1=#:G82618) (LET (#2=#:G82619) (COND ((SETQ #2# (|assoc| (|devaluate| #1#) |Collection;AL|)) (CDR #2#)) (T (SETQ |Collection;AL| (|cons5| (CONS (|devaluate| #1#) (SETQ #2# (|Collection;| #1#))) |Collection;AL|)) #2#)))) - -(DEFUN |Collection;| (|t#1|) (PROG (#1=#:G82617) (RETURN (PROG1 (LETT #1# (|sublisV| (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) (COND (|Collection;CAT|) ((QUOTE T) (LETT |Collection;CAT| (|Join| (|HomogeneousAggregate| (QUOTE |t#1|)) (|mkCategory| (QUOTE |domain|) (QUOTE (((|construct| (|$| (|List| |t#1|))) T) ((|find| ((|Union| |t#1| "failed") (|Mapping| (|Boolean|) |t#1|) |$|)) T) ((|reduce| (|t#1| (|Mapping| |t#1| |t#1| |t#1|) |$|)) (|has| |$| (ATTRIBUTE |finiteAggregate|))) ((|reduce| (|t#1| (|Mapping| |t#1| |t#1| |t#1|) |$| |t#1|)) (|has| |$| (ATTRIBUTE |finiteAggregate|))) ((|remove| (|$| (|Mapping| (|Boolean|) |t#1|) |$|)) (|has| |$| (ATTRIBUTE |finiteAggregate|))) ((|select| (|$| (|Mapping| (|Boolean|) |t#1|) |$|)) (|has| |$| (ATTRIBUTE |finiteAggregate|))) ((|reduce| (|t#1| (|Mapping| |t#1| |t#1| |t#1|) |$| |t#1| |t#1|)) (AND (|has| |t#1| (|SetCategory|)) (|has| |$| (ATTRIBUTE |finiteAggregate|)))) ((|remove| (|$| |t#1| |$|)) (AND (|has| |t#1| (|SetCategory|)) (|has| |$| (ATTRIBUTE |finiteAggregate|)))) ((|removeDuplicates| (|$| |$|)) (AND (|has| |t#1| (|SetCategory|)) (|has| |$| (ATTRIBUTE |finiteAggregate|)))))) (QUOTE (((|ConvertibleTo| (|InputForm|)) (|has| |t#1| (|ConvertibleTo| (|InputForm|)))))) (QUOTE ((|List| |t#1|))) NIL)) . #2=(|Collection|))))) . #2#) (SETELT #1# 0 (LIST (QUOTE |Collection|) (|devaluate| |t#1|))))))) +(DEFUN |Collection| (#1=#:G82618) + (LET (#2=#:G82619) + (COND + ((SETQ #2# (|assoc| (|devaluate| #1#) |Collection;AL|)) (CDR #2#)) + (T + (SETQ |Collection;AL| + (|cons5| + (CONS + (|devaluate| #1#) + (SETQ #2# (|Collection;| #1#))) + |Collection;AL|)) + #2#)))) + +(DEFUN |Collection;| (|t#1|) + (PROG (#1=#:G82617) + (RETURN + (PROG1 + (LETT #1# + (|sublisV| + (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) + (COND + (|Collection;CAT|) + ((QUOTE T) + (LETT |Collection;CAT| + (|Join| + (|HomogeneousAggregate| (QUOTE |t#1|)) + (|mkCategory| + (QUOTE |domain|) + (QUOTE ( + ((|construct| (|$| (|List| |t#1|))) T) + ((|find| ((|Union| |t#1| "failed") + (|Mapping| (|Boolean|) |t#1|) |$|)) + T) + ((|reduce| (|t#1| (|Mapping| |t#1| |t#1| |t#1|) |$|)) + (|has| |$| (ATTRIBUTE |finiteAggregate|))) + ((|reduce| (|t#1| (|Mapping| |t#1| |t#1| |t#1|) |$| |t#1|)) + (|has| |$| (ATTRIBUTE |finiteAggregate|))) + ((|remove| (|$| (|Mapping| (|Boolean|) |t#1|) |$|)) + (|has| |$| (ATTRIBUTE |finiteAggregate|))) + ((|select| (|$| (|Mapping| (|Boolean|) |t#1|) |$|)) + (|has| |$| (ATTRIBUTE |finiteAggregate|))) + ((|reduce| (|t#1| (|Mapping| |t#1| |t#1| |t#1|) |$| |t#1| |t#1|)) + (AND + (|has| |t#1| (|SetCategory|)) + (|has| |$| (ATTRIBUTE |finiteAggregate|)))) + ((|remove| (|$| |t#1| |$|)) + (AND + (|has| |t#1| (|SetCategory|)) + (|has| |$| (ATTRIBUTE |finiteAggregate|)))) + ((|removeDuplicates| (|$| |$|)) + (AND + (|has| |t#1| (|SetCategory|)) + (|has| |$| (ATTRIBUTE |finiteAggregate|)))))) + (QUOTE (((|ConvertibleTo| (|InputForm|)) + (|has| |t#1| (|ConvertibleTo| (|InputForm|)))))) + (QUOTE ((|List| |t#1|))) NIL)) + . #2=(|Collection|))))) + . #2#) + (SETELT #1# 0 (LIST (QUOTE |Collection|) (|devaluate| |t#1|))))))) @ \section{CLAGG-.lsp BOOTSTRAP} {\bf CLAGG-} depends on {\bf CLAGG}. We need to break this cycle to build @@ -2797,33 +2854,206 @@ Note that this code is not included in the generated catdef.spad file. (DEFUN |CLAGG-;#;ANni;1| (|c| |$|) (LENGTH (SPADCALL |c| (QREFELT |$| 9)))) -(DEFUN |CLAGG-;count;MANni;2| (|f| |c| |$|) (PROG (|x| #1=#:G82637 #2=#:G82634 #3=#:G82632 #4=#:G82633) (RETURN (SEQ (PROGN (LETT #4# NIL |CLAGG-;count;MANni;2|) (SEQ (LETT |x| NIL |CLAGG-;count;MANni;2|) (LETT #1# (SPADCALL |c| (QREFELT |$| 9)) |CLAGG-;count;MANni;2|) G190 (COND ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |CLAGG-;count;MANni;2|) NIL)) (GO G191))) (SEQ (EXIT (COND ((SPADCALL |x| |f|) (PROGN (LETT #2# 1 |CLAGG-;count;MANni;2|) (COND (#4# (LETT #3# (|+| #3# #2#) |CLAGG-;count;MANni;2|)) ((QUOTE T) (PROGN (LETT #3# #2# |CLAGG-;count;MANni;2|) (LETT #4# (QUOTE T) |CLAGG-;count;MANni;2|))))))))) (LETT #1# (CDR #1#) |CLAGG-;count;MANni;2|) (GO G190) G191 (EXIT NIL)) (COND (#4# #3#) ((QUOTE T) 0))))))) - -(DEFUN |CLAGG-;any?;MAB;3| (|f| |c| |$|) (PROG (|x| #1=#:G82642 #2=#:G82640 #3=#:G82638 #4=#:G82639) (RETURN (SEQ (PROGN (LETT #4# NIL |CLAGG-;any?;MAB;3|) (SEQ (LETT |x| NIL |CLAGG-;any?;MAB;3|) (LETT #1# (SPADCALL |c| (QREFELT |$| 9)) |CLAGG-;any?;MAB;3|) G190 (COND ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |CLAGG-;any?;MAB;3|) NIL)) (GO G191))) (SEQ (EXIT (PROGN (LETT #2# (SPADCALL |x| |f|) |CLAGG-;any?;MAB;3|) (COND (#4# (LETT #3# (COND (#3# (QUOTE T)) ((QUOTE T) #2#)) |CLAGG-;any?;MAB;3|)) ((QUOTE T) (PROGN (LETT #3# #2# |CLAGG-;any?;MAB;3|) (LETT #4# (QUOTE T) |CLAGG-;any?;MAB;3|))))))) (LETT #1# (CDR #1#) |CLAGG-;any?;MAB;3|) (GO G190) G191 (EXIT NIL)) (COND (#4# #3#) ((QUOTE T) (QUOTE NIL)))))))) - -(DEFUN |CLAGG-;every?;MAB;4| (|f| |c| |$|) (PROG (|x| #1=#:G82647 #2=#:G82645 #3=#:G82643 #4=#:G82644) (RETURN (SEQ (PROGN (LETT #4# NIL |CLAGG-;every?;MAB;4|) (SEQ (LETT |x| NIL |CLAGG-;every?;MAB;4|) (LETT #1# (SPADCALL |c| (QREFELT |$| 9)) |CLAGG-;every?;MAB;4|) G190 (COND ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |CLAGG-;every?;MAB;4|) NIL)) (GO G191))) (SEQ (EXIT (PROGN (LETT #2# (SPADCALL |x| |f|) |CLAGG-;every?;MAB;4|) (COND (#4# (LETT #3# (COND (#3# #2#) ((QUOTE T) (QUOTE NIL))) |CLAGG-;every?;MAB;4|)) ((QUOTE T) (PROGN (LETT #3# #2# |CLAGG-;every?;MAB;4|) (LETT #4# (QUOTE T) |CLAGG-;every?;MAB;4|))))))) (LETT #1# (CDR #1#) |CLAGG-;every?;MAB;4|) (GO G190) G191 (EXIT NIL)) (COND (#4# #3#) ((QUOTE T) (QUOTE T)))))))) - -(DEFUN |CLAGG-;find;MAU;5| (|f| |c| |$|) (SPADCALL |f| (SPADCALL |c| (QREFELT |$| 9)) (QREFELT |$| 18))) - -(DEFUN |CLAGG-;reduce;MAS;6| (|f| |x| |$|) (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 9)) (QREFELT |$| 21))) - -(DEFUN |CLAGG-;reduce;MA2S;7| (|f| |x| |s| |$|) (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 9)) |s| (QREFELT |$| 23))) - -(DEFUN |CLAGG-;remove;M2A;8| (|f| |x| |$|) (SPADCALL (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 9)) (QREFELT |$| 25)) (QREFELT |$| 26))) - -(DEFUN |CLAGG-;select;M2A;9| (|f| |x| |$|) (SPADCALL (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 9)) (QREFELT |$| 28)) (QREFELT |$| 26))) - -(DEFUN |CLAGG-;remove;S2A;10| (|s| |x| |$|) (SPADCALL (CONS (FUNCTION |CLAGG-;remove;S2A;10!0|) (VECTOR |$| |s|)) |x| (QREFELT |$| 31))) - -(DEFUN |CLAGG-;remove;S2A;10!0| (|#1| |$$|) (SPADCALL |#1| (QREFELT |$$| 1) (QREFELT (QREFELT |$$| 0) 30))) - -(DEFUN |CLAGG-;reduce;MA3S;11| (|f| |x| |s1| |s2| |$|) (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 9)) |s1| |s2| (QREFELT |$| 33))) - -(DEFUN |CLAGG-;removeDuplicates;2A;12| (|x| |$|) (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 9)) (QREFELT |$| 35)) (QREFELT |$| 26))) - -(DEFUN |Collection&| (|#1| |#2|) (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) (RETURN (PROGN (LETT |DV$1| (|devaluate| |#1|) . #1=(|Collection&|)) (LETT |DV$2| (|devaluate| |#2|) . #1#) (LETT |dv$| (LIST (QUOTE |Collection&|) |DV$1| |DV$2|) . #1#) (LETT |$| (GETREFV 37) . #1#) (QSETREFV |$| 0 |dv$|) (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 (LIST (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|InputForm|)))) (|HasCategory| |#2| (QUOTE (|SetCategory|))) (|HasAttribute| |#1| (QUOTE |finiteAggregate|)))) . #1#)) (|stuffDomainSlots| |$|) (QSETREFV |$| 6 |#1|) (QSETREFV |$| 7 |#2|) (COND ((|testBitVector| |pv$| 3) (PROGN (QSETREFV |$| 11 (CONS (|dispatchFunction| |CLAGG-;#;ANni;1|) |$|)) (QSETREFV |$| 13 (CONS (|dispatchFunction| |CLAGG-;count;MANni;2|) |$|)) (QSETREFV |$| 15 (CONS (|dispatchFunction| |CLAGG-;any?;MAB;3|) |$|)) (QSETREFV |$| 16 (CONS (|dispatchFunction| |CLAGG-;every?;MAB;4|) |$|)) (QSETREFV |$| 19 (CONS (|dispatchFunction| |CLAGG-;find;MAU;5|) |$|)) (QSETREFV |$| 22 (CONS (|dispatchFunction| |CLAGG-;reduce;MAS;6|) |$|)) (QSETREFV |$| 24 (CONS (|dispatchFunction| |CLAGG-;reduce;MA2S;7|) |$|)) (QSETREFV |$| 27 (CONS (|dispatchFunction| |CLAGG-;remove;M2A;8|) |$|)) (QSETREFV |$| 29 (CONS (|dispatchFunction| |CLAGG-;select;M2A;9|) |$|)) (COND ((|testBitVector| |pv$| 2) (PROGN (QSETREFV |$| 32 (CONS (|dispatchFunction| |CLAGG-;remove;S2A;10|) |$|)) (QSETREFV |$| 34 (CONS (|dispatchFunction| |CLAGG-;reduce;MA3S;11|) |$|)) (QSETREFV |$| 36 (CONS (|dispatchFunction| |CLAGG-;removeDuplicates;2A;12|) |$|)))))))) |$|)))) - -(MAKEPROP (QUOTE |Collection&|) (QUOTE |infovec|) (LIST (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|List| 7) (0 . |parts|) (|NonNegativeInteger|) (5 . |#|) (|Mapping| 14 7) (10 . |count|) (|Boolean|) (16 . |any?|) (22 . |every?|) (|Union| 7 (QUOTE "failed")) (28 . |find|) (34 . |find|) (|Mapping| 7 7 7) (40 . |reduce|) (46 . |reduce|) (52 . |reduce|) (59 . |reduce|) (66 . |remove|) (72 . |construct|) (77 . |remove|) (83 . |select|) (89 . |select|) (95 . |=|) (101 . |remove|) (107 . |remove|) (113 . |reduce|) (121 . |reduce|) (129 . |removeDuplicates|) (134 . |removeDuplicates|))) (QUOTE #(|select| 139 |removeDuplicates| 145 |remove| 150 |reduce| 162 |find| 183 |every?| 189 |count| 195 |any?| 201 |#| 207)) (QUOTE NIL) (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) (CONS (QUOTE #()) (CONS (QUOTE #()) (|makeByteWordVec2| 36 (QUOTE (1 6 8 0 9 1 0 10 0 11 2 0 10 12 0 13 2 0 14 12 0 15 2 0 14 12 0 16 2 8 17 12 0 18 2 0 17 12 0 19 2 8 7 20 0 21 2 0 7 20 0 22 3 8 7 20 0 7 23 3 0 7 20 0 7 24 2 8 0 12 0 25 1 6 0 8 26 2 0 0 12 0 27 2 8 0 12 0 28 2 0 0 12 0 29 2 7 14 0 0 30 2 6 0 12 0 31 2 0 0 7 0 32 4 8 7 20 0 7 7 33 4 0 7 20 0 7 7 34 1 8 0 0 35 1 0 0 0 36 2 0 0 12 0 29 1 0 0 0 36 2 0 0 7 0 32 2 0 0 12 0 27 4 0 7 20 0 7 7 34 3 0 7 20 0 7 24 2 0 7 20 0 22 2 0 17 12 0 19 2 0 14 12 0 16 2 0 10 12 0 13 2 0 14 12 0 15 1 0 10 0 11)))))) (QUOTE |lookupComplete|))) +(DEFUN |CLAGG-;count;MANni;2| (|f| |c| |$|) + (PROG (|x| #1=#:G82637 #2=#:G82634 #3=#:G82632 #4=#:G82633) + (RETURN + (SEQ + (PROGN + (LETT #4# NIL |CLAGG-;count;MANni;2|) + (SEQ + (LETT |x| NIL |CLAGG-;count;MANni;2|) + (LETT #1# (SPADCALL |c| (QREFELT |$| 9)) |CLAGG-;count;MANni;2|) + G190 + (COND + ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |CLAGG-;count;MANni;2|) NIL)) + (GO G191))) + (SEQ + (EXIT + (COND + ((SPADCALL |x| |f|) + (PROGN + (LETT #2# 1 |CLAGG-;count;MANni;2|) + (COND + (#4# (LETT #3# (|+| #3# #2#) |CLAGG-;count;MANni;2|)) + ((QUOTE T) + (PROGN + (LETT #3# #2# |CLAGG-;count;MANni;2|) + (LETT #4# (QUOTE T) |CLAGG-;count;MANni;2|))))))))) + (LETT #1# (CDR #1#) |CLAGG-;count;MANni;2|) + (GO G190) + G191 + (EXIT NIL)) + (COND (#4# #3#) ((QUOTE T) 0))))))) + +(DEFUN |CLAGG-;any?;MAB;3| (|f| |c| |$|) + (PROG (|x| #1=#:G82642 #2=#:G82640 #3=#:G82638 #4=#:G82639) + (RETURN + (SEQ + (PROGN + (LETT #4# NIL |CLAGG-;any?;MAB;3|) + (SEQ + (LETT |x| NIL |CLAGG-;any?;MAB;3|) + (LETT #1# (SPADCALL |c| (QREFELT |$| 9)) |CLAGG-;any?;MAB;3|) + G190 + (COND + ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |CLAGG-;any?;MAB;3|) NIL)) + (GO G191))) + (SEQ + (EXIT + (PROGN + (LETT #2# (SPADCALL |x| |f|) |CLAGG-;any?;MAB;3|) + (COND + (#4# + (LETT #3# + (COND (#3# (QUOTE T)) ((QUOTE T) #2#)) + |CLAGG-;any?;MAB;3|)) + ((QUOTE T) + (PROGN + (LETT #3# #2# |CLAGG-;any?;MAB;3|) + (LETT #4# (QUOTE T) |CLAGG-;any?;MAB;3|))))))) + (LETT #1# (CDR #1#) |CLAGG-;any?;MAB;3|) + (GO G190) + G191 + (EXIT NIL)) + (COND (#4# #3#) ((QUOTE T) (QUOTE NIL)))))))) + +(DEFUN |CLAGG-;every?;MAB;4| (|f| |c| |$|) + (PROG (|x| #1=#:G82647 #2=#:G82645 #3=#:G82643 #4=#:G82644) + (RETURN + (SEQ + (PROGN + (LETT #4# NIL |CLAGG-;every?;MAB;4|) + (SEQ + (LETT |x| NIL |CLAGG-;every?;MAB;4|) + (LETT #1# (SPADCALL |c| (QREFELT |$| 9)) |CLAGG-;every?;MAB;4|) + G190 + (COND + ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |CLAGG-;every?;MAB;4|) NIL)) + (GO G191))) + (SEQ + (EXIT + (PROGN + (LETT #2# (SPADCALL |x| |f|) |CLAGG-;every?;MAB;4|) + (COND + (#4# + (LETT #3# + (COND (#3# #2#) ((QUOTE T) (QUOTE NIL))) + |CLAGG-;every?;MAB;4|)) + ((QUOTE T) + (PROGN + (LETT #3# #2# |CLAGG-;every?;MAB;4|) + (LETT #4# (QUOTE T) |CLAGG-;every?;MAB;4|))))))) + (LETT #1# (CDR #1#) |CLAGG-;every?;MAB;4|) + (GO G190) + G191 + (EXIT NIL)) + (COND (#4# #3#) ((QUOTE T) (QUOTE T)))))))) + +(DEFUN |CLAGG-;find;MAU;5| (|f| |c| |$|) + (SPADCALL |f| (SPADCALL |c| (QREFELT |$| 9)) (QREFELT |$| 18))) + +(DEFUN |CLAGG-;reduce;MAS;6| (|f| |x| |$|) + (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 9)) (QREFELT |$| 21))) + +(DEFUN |CLAGG-;reduce;MA2S;7| (|f| |x| |s| |$|) + (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 9)) |s| (QREFELT |$| 23))) + +(DEFUN |CLAGG-;remove;M2A;8| (|f| |x| |$|) + (SPADCALL + (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 9)) (QREFELT |$| 25)) + (QREFELT |$| 26))) + +(DEFUN |CLAGG-;select;M2A;9| (|f| |x| |$|) + (SPADCALL + (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 9)) (QREFELT |$| 28)) + (QREFELT |$| 26))) + +(DEFUN |CLAGG-;remove;S2A;10| (|s| |x| |$|) + (SPADCALL + (CONS (FUNCTION |CLAGG-;remove;S2A;10!0|) (VECTOR |$| |s|)) + |x| + (QREFELT |$| 31))) + +(DEFUN |CLAGG-;remove;S2A;10!0| (|#1| |$$|) + (SPADCALL |#1| (QREFELT |$$| 1) (QREFELT (QREFELT |$$| 0) 30))) + +(DEFUN |CLAGG-;reduce;MA3S;11| (|f| |x| |s1| |s2| |$|) + (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 9)) |s1| |s2| (QREFELT |$| 33))) + +(DEFUN |CLAGG-;removeDuplicates;2A;12| (|x| |$|) + (SPADCALL + (SPADCALL (SPADCALL |x| (QREFELT |$| 9)) (QREFELT |$| 35)) + (QREFELT |$| 26))) + +(DEFUN |Collection&| (|#1| |#2|) + (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|Collection&|)) + (LETT |DV$2| (|devaluate| |#2|) . #1#) + (LETT |dv$| (LIST (QUOTE |Collection&|) |DV$1| |DV$2|) . #1#) + (LETT |$| (GETREFV 37) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 (LIST (|HasCategory| |#2| (QUOTE (|ConvertibleTo| (|InputForm|)))) (|HasCategory| |#2| (QUOTE (|SetCategory|))) (|HasAttribute| |#1| (QUOTE |finiteAggregate|)))) . #1#)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + (QSETREFV |$| 7 |#2|) + (COND + ((|testBitVector| |pv$| 3) + (PROGN + (QSETREFV |$| 11 (CONS (|dispatchFunction| |CLAGG-;#;ANni;1|) |$|)) + (QSETREFV |$| 13 (CONS (|dispatchFunction| |CLAGG-;count;MANni;2|) |$|)) + (QSETREFV |$| 15 (CONS (|dispatchFunction| |CLAGG-;any?;MAB;3|) |$|)) + (QSETREFV |$| 16 (CONS (|dispatchFunction| |CLAGG-;every?;MAB;4|) |$|)) + (QSETREFV |$| 19 (CONS (|dispatchFunction| |CLAGG-;find;MAU;5|) |$|)) + (QSETREFV |$| 22 (CONS (|dispatchFunction| |CLAGG-;reduce;MAS;6|) |$|)) + (QSETREFV |$| 24 (CONS (|dispatchFunction| |CLAGG-;reduce;MA2S;7|) |$|)) + (QSETREFV |$| 27 (CONS (|dispatchFunction| |CLAGG-;remove;M2A;8|) |$|)) + (QSETREFV |$| 29 (CONS (|dispatchFunction| |CLAGG-;select;M2A;9|) |$|)) + (COND + ((|testBitVector| |pv$| 2) + (PROGN + (QSETREFV |$| 32 + (CONS (|dispatchFunction| |CLAGG-;remove;S2A;10|) |$|)) + (QSETREFV |$| 34 + (CONS (|dispatchFunction| |CLAGG-;reduce;MA3S;11|) |$|)) + (QSETREFV |$| 36 + (CONS (|dispatchFunction| |CLAGG-;removeDuplicates;2A;12|) + |$|)))))))) + |$|)))) + +(MAKEPROP + (QUOTE |Collection&|) + (QUOTE |infovec|) + (LIST (QUOTE + #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|List| 7) + (0 . |parts|) (|NonNegativeInteger|) (5 . |#|) (|Mapping| 14 7) + (10 . |count|) (|Boolean|) (16 . |any?|) (22 . |every?|) + (|Union| 7 (QUOTE "failed")) (28 . |find|) (34 . |find|) + (|Mapping| 7 7 7) (40 . |reduce|) (46 . |reduce|) (52 . |reduce|) + (59 . |reduce|) (66 . |remove|) (72 . |construct|) (77 . |remove|) + (83 . |select|) (89 . |select|) (95 . |=|) (101 . |remove|) + (107 . |remove|) (113 . |reduce|) (121 . |reduce|) + (129 . |removeDuplicates|) (134 . |removeDuplicates|))) + (QUOTE #(|select| 139 |removeDuplicates| 145 |remove| 150 |reduce| + 162 |find| 183 |every?| 189 |count| 195 |any?| 201 |#| 207)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS + (QUOTE #()) + (CONS + (QUOTE #()) + (|makeByteWordVec2| 36 + (QUOTE (1 6 8 0 9 1 0 10 0 11 2 0 10 12 0 13 2 0 14 12 0 15 2 0 14 + 12 0 16 2 8 17 12 0 18 2 0 17 12 0 19 2 8 7 20 0 21 2 0 7 20 0 22 + 3 8 7 20 0 7 23 3 0 7 20 0 7 24 2 8 0 12 0 25 1 6 0 8 26 2 0 0 12 + 0 27 2 8 0 12 0 28 2 0 0 12 0 29 2 7 14 0 0 30 2 6 0 12 0 31 2 0 0 + 7 0 32 4 8 7 20 0 7 7 33 4 0 7 20 0 7 7 34 1 8 0 0 35 1 0 0 0 36 2 + 0 0 12 0 29 1 0 0 0 36 2 0 0 7 0 32 2 0 0 12 0 27 4 0 7 20 0 7 7 34 + 3 0 7 20 0 7 24 2 0 7 20 0 22 2 0 17 12 0 19 2 0 14 12 0 16 2 0 10 + 12 0 13 2 0 14 12 0 15 1 0 10 0 11)))))) + (QUOTE |lookupComplete|))) @ \section{category DIAGG Dictionary} <>= @@ -2987,11 +3217,14 @@ DoublyLinkedAggregate(S:Type): Category == RecursiveAggregate S with ++ Note: \axiom{next(l) = rest(l)} and \axiom{previous(next(l)) = l}. if % has shallowlyMutable then concat_!: (%,%) -> % - ++ concat!(u,v) destructively concatenates doubly-linked aggregate v to the end of doubly-linked aggregate u. + ++ concat!(u,v) destructively concatenates doubly-linked aggregate v + ++ to the end of doubly-linked aggregate u. setprevious_!: (%,%) -> % - ++ setprevious!(u,v) destructively sets the previous node of doubly-linked aggregate u to v, returning v. + ++ setprevious!(u,v) destructively sets the previous node of + ++ doubly-linked aggregate u to v, returning v. setnext_!: (%,%) -> % - ++ setnext!(u,v) destructively sets the next node of doubly-linked aggregate u to v, returning v. + ++ setnext!(u,v) destructively sets the next node of doubly-linked + ++ aggregate u to v, returning v. @ <>= @@ -3085,9 +3318,9 @@ DequeueAggregate(S:Type): ++ Keywords: ++ References: ++ Description: -++ An extensible aggregate is one which allows insertion and deletion of entries. -++ These aggregates are models of lists and streams which are represented -++ by linked structures so as to make insertion, deletion, and +++ An extensible aggregate is one which allows insertion and deletion of +++ entries. These aggregates are models of lists and streams which are +++ represented by linked structures so as to make insertion, deletion, and ++ concatenation efficient. However, access to elements of these ++ extensible aggregates is generally slow since access is made from the end. ++ See \spadtype{FlexibleArray} for an exception. @@ -3173,7 +3406,7 @@ ExtensibleLinearAggregate(S:Type):Category == LinearAggregate S with ++ An eltable over domains D and I is a structure which can be viewed ++ as a function from D to I. ++ Examples of eltable structures range from data structures, e.g. those -++ of type \spadtype{List}, to algebraic structures, e.g. \spadtype{Polynomial}. +++ of type \spadtype{List}, to algebraic structures like \spadtype{Polynomial}. Eltable(S:SetCategory, Index:Type): Category == with elt : (%, S) -> Index ++ elt(u,i) (also written: u . i) returns the element of u indexed by i. @@ -3280,23 +3513,27 @@ FiniteLinearAggregate(S:Type): Category == LinearAggregate S with ++ of \axiom{a} is examined, and so on. When all the elements of one ++ aggregate are examined, the remaining elements of the other ++ are appended. - ++ For example, \axiom{merge(<,[1,3],[2,7,5])} returns \axiom{[1,2,3,7,5]}. + ++ For example, \axiom{merge(<,[1,3],[2,7,5])} returns + ++ \axiom{[1,2,3,7,5]}. reverse: % -> % ++ reverse(a) returns a copy of \axiom{a} with elements in reverse order. sort: ((S,S)->Boolean,%) -> % - ++ sort(p,a) returns a copy of \axiom{a} sorted using total ordering predicate p. + ++ sort(p,a) returns a copy of \axiom{a} sorted using total ordering + ++ predicate p. sorted?: ((S,S)->Boolean,%) -> Boolean ++ sorted?(p,a) tests if \axiom{a} is sorted according to predicate p. position: (S->Boolean, %) -> Integer - ++ position(p,a) returns the index i of the first x in \axiom{a} such that - ++ \axiom{p(x)} is true, and \axiom{minIndex(a) - 1} if there is no such x. + ++ position(p,a) returns the index i of the first x in \axiom{a} + ++ such that \axiom{p(x)} is true, and \axiom{minIndex(a) - 1} + ++ if there is no such x. if S has SetCategory then position: (S, %) -> Integer ++ position(x,a) returns the index i of the first occurrence of x in a, ++ and \axiom{minIndex(a) - 1} if there is no such x. position: (S,%,Integer) -> Integer ++ position(x,a,n) returns the index i of the first occurrence of x in - ++ \axiom{a} where \axiom{i >= n}, and \axiom{minIndex(a) - 1} if no such x is found. + ++ \axiom{a} where \axiom{i >= n}, and \axiom{minIndex(a) - 1} + ++ if no such x is found. if S has OrderedSet then OrderedSet merge: (%,%) -> % @@ -3420,13 +3657,15 @@ FiniteSetAggregate(S:SetCategory): Category == if S has Finite then universe() == {index(i::PositiveInteger) for i in 1..size()$S} complement s == difference(universe(), s ) - size() == 2 ** size()$S - index i == {index(j::PositiveInteger)$S for j in 1..size()$S | bit?(i-1,j-1)} - random() == index((random()$Integer rem (size()$% + 1))::PositiveInteger) + size() == 2 ** size()$S + index i == + {index(j::PositiveInteger)$S for j in 1..size()$S | bit?(i-1,j-1)} + random() == index((random()$Integer rem (size()$% + 1))::PositiveInteger) lookup s == n:PositiveInteger := 1 - for x in parts s repeat n := n + 2 ** ((lookup(x) - 1)::NonNegativeInteger) + for x in parts s repeat _ + n := n + 2 ** ((lookup(x) - 1)::NonNegativeInteger) n if S has OrderedSet then @@ -3482,7 +3721,8 @@ HomogeneousAggregate(S:Type): Category == Aggregate with ++ For collections, \axiom{map(f,u) = [f(x) for x in u]}. if % has shallowlyMutable then map_!: (S->S,%) -> % - ++ map!(f,u) destructively replaces each element x of u by \axiom{f(x)}. + ++ map!(f,u) destructively replaces each element x of u + ++ by \axiom{f(x)}. if % has finiteAggregate then any?: (S->Boolean,%) -> Boolean ++ any?(p,u) tests if \axiom{p(x)} is true for any element x of u. @@ -3504,8 +3744,8 @@ HomogeneousAggregate(S:Type): Category == Aggregate with ++ For collections, \axiom{parts([x,y,...,z]) = (x,y,...,z)}. if S has SetCategory then count: (S,%) -> NonNegativeInteger - ++ count(x,u) returns the number of occurrences of x in u. - ++ For collections, \axiom{count(x,u) = reduce(+,[x=y for y in u],0)}. + ++ count(x,u) returns the number of occurrences of x in u. For + ++ collections, \axiom{count(x,u) = reduce(+,[x=y for y in u],0)}. member?: (S,%) -> Boolean ++ member?(x,u) tests if x is a member of u. ++ For collections, @@ -3639,35 +3879,281 @@ Note that this code is not included in the generated catdef.spad file. (|/VERSIONCHECK| 2) -(DEFUN |HOAGG-;eval;ALA;1| (|u| |l| |$|) (SPADCALL (CONS (FUNCTION |HOAGG-;eval;ALA;1!0|) (VECTOR |$| |l|)) |u| (QREFELT |$| 11))) - -(DEFUN |HOAGG-;eval;ALA;1!0| (|#1| |$$|) (SPADCALL |#1| (QREFELT |$$| 1) (QREFELT (QREFELT |$$| 0) 9))) +(DEFUN |HOAGG-;eval;ALA;1| (|u| |l| |$|) + (SPADCALL + (CONS (FUNCTION |HOAGG-;eval;ALA;1!0|) (VECTOR |$| |l|)) + |u| + (QREFELT |$| 11))) -(DEFUN |HOAGG-;#;ANni;2| (|c| |$|) (LENGTH (SPADCALL |c| (QREFELT |$| 14)))) +(DEFUN |HOAGG-;eval;ALA;1!0| (|#1| |$$|) + (SPADCALL |#1| (QREFELT |$$| 1) (QREFELT (QREFELT |$$| 0) 9))) -(DEFUN |HOAGG-;any?;MAB;3| (|f| |c| |$|) (PROG (|x| #1=#:G82396 #2=#:G82393 #3=#:G82391 #4=#:G82392) (RETURN (SEQ (PROGN (LETT #4# NIL |HOAGG-;any?;MAB;3|) (SEQ (LETT |x| NIL |HOAGG-;any?;MAB;3|) (LETT #1# (SPADCALL |c| (QREFELT |$| 14)) |HOAGG-;any?;MAB;3|) G190 (COND ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |HOAGG-;any?;MAB;3|) NIL)) (GO G191))) (SEQ (EXIT (PROGN (LETT #2# (SPADCALL |x| |f|) |HOAGG-;any?;MAB;3|) (COND (#4# (LETT #3# (COND (#3# (QUOTE T)) ((QUOTE T) #2#)) |HOAGG-;any?;MAB;3|)) ((QUOTE T) (PROGN (LETT #3# #2# |HOAGG-;any?;MAB;3|) (LETT #4# (QUOTE T) |HOAGG-;any?;MAB;3|))))))) (LETT #1# (CDR #1#) |HOAGG-;any?;MAB;3|) (GO G190) G191 (EXIT NIL)) (COND (#4# #3#) ((QUOTE T) (QUOTE NIL)))))))) +(DEFUN |HOAGG-;#;ANni;2| (|c| |$|) + (LENGTH (SPADCALL |c| (QREFELT |$| 14)))) -(DEFUN |HOAGG-;every?;MAB;4| (|f| |c| |$|) (PROG (|x| #1=#:G82401 #2=#:G82399 #3=#:G82397 #4=#:G82398) (RETURN (SEQ (PROGN (LETT #4# NIL |HOAGG-;every?;MAB;4|) (SEQ (LETT |x| NIL |HOAGG-;every?;MAB;4|) (LETT #1# (SPADCALL |c| (QREFELT |$| 14)) |HOAGG-;every?;MAB;4|) G190 (COND ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |HOAGG-;every?;MAB;4|) NIL)) (GO G191))) (SEQ (EXIT (PROGN (LETT #2# (SPADCALL |x| |f|) |HOAGG-;every?;MAB;4|) (COND (#4# (LETT #3# (COND (#3# #2#) ((QUOTE T) (QUOTE NIL))) |HOAGG-;every?;MAB;4|)) ((QUOTE T) (PROGN (LETT #3# #2# |HOAGG-;every?;MAB;4|) (LETT #4# (QUOTE T) |HOAGG-;every?;MAB;4|))))))) (LETT #1# (CDR #1#) |HOAGG-;every?;MAB;4|) (GO G190) G191 (EXIT NIL)) (COND (#4# #3#) ((QUOTE T) (QUOTE T)))))))) - -(DEFUN |HOAGG-;count;MANni;5| (|f| |c| |$|) (PROG (|x| #1=#:G82406 #2=#:G82404 #3=#:G82402 #4=#:G82403) (RETURN (SEQ (PROGN (LETT #4# NIL |HOAGG-;count;MANni;5|) (SEQ (LETT |x| NIL |HOAGG-;count;MANni;5|) (LETT #1# (SPADCALL |c| (QREFELT |$| 14)) |HOAGG-;count;MANni;5|) G190 (COND ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |HOAGG-;count;MANni;5|) NIL)) (GO G191))) (SEQ (EXIT (COND ((SPADCALL |x| |f|) (PROGN (LETT #2# 1 |HOAGG-;count;MANni;5|) (COND (#4# (LETT #3# (|+| #3# #2#) |HOAGG-;count;MANni;5|)) ((QUOTE T) (PROGN (LETT #3# #2# |HOAGG-;count;MANni;5|) (LETT #4# (QUOTE T) |HOAGG-;count;MANni;5|))))))))) (LETT #1# (CDR #1#) |HOAGG-;count;MANni;5|) (GO G190) G191 (EXIT NIL)) (COND (#4# #3#) ((QUOTE T) 0))))))) +(DEFUN |HOAGG-;any?;MAB;3| (|f| |c| |$|) + (PROG (|x| #1=#:G82396 #2=#:G82393 #3=#:G82391 #4=#:G82392) + (RETURN + (SEQ + (PROGN + (LETT #4# NIL |HOAGG-;any?;MAB;3|) + (SEQ + (LETT |x| NIL |HOAGG-;any?;MAB;3|) + (LETT #1# (SPADCALL |c| (QREFELT |$| 14)) |HOAGG-;any?;MAB;3|) + G190 + (COND + ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |HOAGG-;any?;MAB;3|) NIL)) + (GO G191))) + (SEQ + (EXIT + (PROGN + (LETT #2# (SPADCALL |x| |f|) |HOAGG-;any?;MAB;3|) + (COND + (#4# + (LETT #3# + (COND + (#3# (QUOTE T)) + ((QUOTE T) #2#)) + |HOAGG-;any?;MAB;3|)) + ((QUOTE T) + (PROGN + (LETT #3# #2# |HOAGG-;any?;MAB;3|) + (LETT #4# (QUOTE T) |HOAGG-;any?;MAB;3|))))))) + (LETT #1# (CDR #1#) |HOAGG-;any?;MAB;3|) (GO G190) G191 (EXIT NIL)) + (COND (#4# #3#) ((QUOTE T) (QUOTE NIL)))))))) + +(DEFUN |HOAGG-;every?;MAB;4| (|f| |c| |$|) + (PROG (|x| #1=#:G82401 #2=#:G82399 #3=#:G82397 #4=#:G82398) + (RETURN + (SEQ + (PROGN + (LETT #4# NIL |HOAGG-;every?;MAB;4|) + (SEQ + (LETT |x| NIL |HOAGG-;every?;MAB;4|) + (LETT #1# (SPADCALL |c| (QREFELT |$| 14)) |HOAGG-;every?;MAB;4|) + G190 + (COND + ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |HOAGG-;every?;MAB;4|) NIL)) + (GO G191))) + (SEQ + (EXIT + (PROGN + (LETT #2# (SPADCALL |x| |f|) |HOAGG-;every?;MAB;4|) + (COND + (#4# + (LETT #3# + (COND (#3# #2#) ((QUOTE T) (QUOTE NIL))) + |HOAGG-;every?;MAB;4|)) + ((QUOTE T) + (PROGN + (LETT #3# #2# |HOAGG-;every?;MAB;4|) + (LETT #4# (QUOTE T) |HOAGG-;every?;MAB;4|))))))) + (LETT #1# (CDR #1#) |HOAGG-;every?;MAB;4|) + (GO G190) + G191 + (EXIT NIL)) + (COND (#4# #3#) ((QUOTE T) (QUOTE T)))))))) + +(DEFUN |HOAGG-;count;MANni;5| (|f| |c| |$|) + (PROG (|x| #1=#:G82406 #2=#:G82404 #3=#:G82402 #4=#:G82403) + (RETURN + (SEQ + (PROGN + (LETT #4# NIL |HOAGG-;count;MANni;5|) + (SEQ + (LETT |x| NIL |HOAGG-;count;MANni;5|) + (LETT #1# (SPADCALL |c| (QREFELT |$| 14)) |HOAGG-;count;MANni;5|) + G190 + (COND + ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) |HOAGG-;count;MANni;5|) NIL)) + (GO G191))) + (SEQ + (EXIT + (COND + ((SPADCALL |x| |f|) + (PROGN + (LETT #2# 1 |HOAGG-;count;MANni;5|) + (COND + (#4# (LETT #3# (|+| #3# #2#) |HOAGG-;count;MANni;5|)) + ((QUOTE T) + (PROGN + (LETT #3# #2# |HOAGG-;count;MANni;5|) + (LETT #4# (QUOTE T) |HOAGG-;count;MANni;5|))))))))) + (LETT #1# (CDR #1#) |HOAGG-;count;MANni;5|) + (GO G190) + G191 + (EXIT NIL)) + (COND (#4# #3#) ((QUOTE T) 0))))))) (DEFUN |HOAGG-;members;AL;6| (|x| |$|) (SPADCALL |x| (QREFELT |$| 14))) -(DEFUN |HOAGG-;count;SANni;7| (|s| |x| |$|) (SPADCALL (CONS (FUNCTION |HOAGG-;count;SANni;7!0|) (VECTOR |$| |s|)) |x| (QREFELT |$| 24))) +(DEFUN |HOAGG-;count;SANni;7| (|s| |x| |$|) + (SPADCALL + (CONS (FUNCTION |HOAGG-;count;SANni;7!0|) (VECTOR |$| |s|)) + |x| + (QREFELT |$| 24))) -(DEFUN |HOAGG-;count;SANni;7!0| (|#1| |$$|) (SPADCALL (QREFELT |$$| 1) |#1| (QREFELT (QREFELT |$$| 0) 23))) +(DEFUN |HOAGG-;count;SANni;7!0| (|#1| |$$|) + (SPADCALL (QREFELT |$$| 1) |#1| (QREFELT (QREFELT |$$| 0) 23))) -(DEFUN |HOAGG-;member?;SAB;8| (|e| |c| |$|) (SPADCALL (CONS (FUNCTION |HOAGG-;member?;SAB;8!0|) (VECTOR |$| |e|)) |c| (QREFELT |$| 26))) +(DEFUN |HOAGG-;member?;SAB;8| (|e| |c| |$|) + (SPADCALL + (CONS (FUNCTION |HOAGG-;member?;SAB;8!0|) (VECTOR |$| |e|)) + |c| + (QREFELT |$| 26))) -(DEFUN |HOAGG-;member?;SAB;8!0| (|#1| |$$|) (SPADCALL (QREFELT |$$| 1) |#1| (QREFELT (QREFELT |$$| 0) 23))) +(DEFUN |HOAGG-;member?;SAB;8!0| (|#1| |$$|) + (SPADCALL (QREFELT |$$| 1) |#1| (QREFELT (QREFELT |$$| 0) 23))) -(DEFUN |HOAGG-;=;2AB;9| (|x| |y| |$|) (PROG (|b| #1=#:G82416 |a| #2=#:G82415 #3=#:G82412 #4=#:G82410 #5=#:G82411) (RETURN (SEQ (COND ((SPADCALL |x| (SPADCALL |y| (QREFELT |$| 28)) (QREFELT |$| 29)) (PROGN (LETT #5# NIL |HOAGG-;=;2AB;9|) (SEQ (LETT |b| NIL |HOAGG-;=;2AB;9|) (LETT #1# (SPADCALL |y| (QREFELT |$| 14)) |HOAGG-;=;2AB;9|) (LETT |a| NIL |HOAGG-;=;2AB;9|) (LETT #2# (SPADCALL |x| (QREFELT |$| 14)) |HOAGG-;=;2AB;9|) G190 (COND ((OR (ATOM #2#) (PROGN (LETT |a| (CAR #2#) |HOAGG-;=;2AB;9|) NIL) (ATOM #1#) (PROGN (LETT |b| (CAR #1#) |HOAGG-;=;2AB;9|) NIL)) (GO G191))) (SEQ (EXIT (PROGN (LETT #3# (SPADCALL |a| |b| (QREFELT |$| 23)) |HOAGG-;=;2AB;9|) (COND (#5# (LETT #4# (COND (#4# #3#) ((QUOTE T) (QUOTE NIL))) |HOAGG-;=;2AB;9|)) ((QUOTE T) (PROGN (LETT #4# #3# |HOAGG-;=;2AB;9|) (LETT #5# (QUOTE T) |HOAGG-;=;2AB;9|))))))) (LETT #2# (PROG1 (CDR #2#) (LETT #1# (CDR #1#) |HOAGG-;=;2AB;9|)) |HOAGG-;=;2AB;9|) (GO G190) G191 (EXIT NIL)) (COND (#5# #4#) ((QUOTE T) (QUOTE T))))) ((QUOTE T) (QUOTE NIL))))))) - -(DEFUN |HOAGG-;coerce;AOf;10| (|x| |$|) (PROG (#1=#:G82420 |a| #2=#:G82421) (RETURN (SEQ (SPADCALL (SPADCALL (PROGN (LETT #1# NIL |HOAGG-;coerce;AOf;10|) (SEQ (LETT |a| NIL |HOAGG-;coerce;AOf;10|) (LETT #2# (SPADCALL |x| (QREFELT |$| 14)) |HOAGG-;coerce;AOf;10|) G190 (COND ((OR (ATOM #2#) (PROGN (LETT |a| (CAR #2#) |HOAGG-;coerce;AOf;10|) NIL)) (GO G191))) (SEQ (EXIT (LETT #1# (CONS (SPADCALL |a| (QREFELT |$| 32)) #1#) |HOAGG-;coerce;AOf;10|))) (LETT #2# (CDR #2#) |HOAGG-;coerce;AOf;10|) (GO G190) G191 (EXIT (NREVERSE0 #1#)))) (QREFELT |$| 34)) (QREFELT |$| 35)))))) - -(DEFUN |HomogeneousAggregate&| (|#1| |#2|) (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) (RETURN (PROGN (LETT |DV$1| (|devaluate| |#1|) . #1=(|HomogeneousAggregate&|)) (LETT |DV$2| (|devaluate| |#2|) . #1#) (LETT |dv$| (LIST (QUOTE |HomogeneousAggregate&|) |DV$1| |DV$2|) . #1#) (LETT |$| (GETREFV 38) . #1#) (QSETREFV |$| 0 |dv$|) (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 (LIST (|HasAttribute| |#1| (QUOTE |finiteAggregate|)) (|HasAttribute| |#1| (QUOTE |shallowlyMutable|)) (|HasCategory| |#2| (LIST (QUOTE |Evalable|) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (|SetCategory|))))) . #1#)) (|stuffDomainSlots| |$|) (QSETREFV |$| 6 |#1|) (QSETREFV |$| 7 |#2|) (COND ((|testBitVector| |pv$| 3) (QSETREFV |$| 12 (CONS (|dispatchFunction| |HOAGG-;eval;ALA;1|) |$|)))) (COND ((|testBitVector| |pv$| 1) (PROGN (QSETREFV |$| 16 (CONS (|dispatchFunction| |HOAGG-;#;ANni;2|) |$|)) (QSETREFV |$| 19 (CONS (|dispatchFunction| |HOAGG-;any?;MAB;3|) |$|)) (QSETREFV |$| 20 (CONS (|dispatchFunction| |HOAGG-;every?;MAB;4|) |$|)) (QSETREFV |$| 21 (CONS (|dispatchFunction| |HOAGG-;count;MANni;5|) |$|)) (QSETREFV |$| 22 (CONS (|dispatchFunction| |HOAGG-;members;AL;6|) |$|)) (COND ((|testBitVector| |pv$| 4) (PROGN (QSETREFV |$| 25 (CONS (|dispatchFunction| |HOAGG-;count;SANni;7|) |$|)) (QSETREFV |$| 27 (CONS (|dispatchFunction| |HOAGG-;member?;SAB;8|) |$|)) (QSETREFV |$| 30 (CONS (|dispatchFunction| |HOAGG-;=;2AB;9|) |$|)) (QSETREFV |$| 36 (CONS (|dispatchFunction| |HOAGG-;coerce;AOf;10|) |$|)))))))) |$|)))) - -(MAKEPROP (QUOTE |HomogeneousAggregate&|) (QUOTE |infovec|) (LIST (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|List| 37) (0 . |eval|) (|Mapping| 7 7) (6 . |map|) (12 . |eval|) (|List| 7) (18 . |parts|) (|NonNegativeInteger|) (23 . |#|) (|Boolean|) (|Mapping| 17 7) (28 . |any?|) (34 . |every?|) (40 . |count|) (46 . |members|) (51 . |=|) (57 . |count|) (63 . |count|) (69 . |any?|) (75 . |member?|) (81 . |#|) (86 . |size?|) (92 . |=|) (|OutputForm|) (98 . |coerce|) (|List| |$|) (103 . |commaSeparate|) (108 . |bracket|) (113 . |coerce|) (|Equation| 7))) (QUOTE #(|members| 118 |member?| 123 |every?| 129 |eval| 135 |count| 141 |coerce| 153 |any?| 158 |=| 164 |#| 170)) (QUOTE NIL) (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) (CONS (QUOTE #()) (CONS (QUOTE #()) (|makeByteWordVec2| 36 (QUOTE (2 7 0 0 8 9 2 6 0 10 0 11 2 0 0 0 8 12 1 6 13 0 14 1 0 15 0 16 2 0 17 18 0 19 2 0 17 18 0 20 2 0 15 18 0 21 1 0 13 0 22 2 7 17 0 0 23 2 6 15 18 0 24 2 0 15 7 0 25 2 6 17 18 0 26 2 0 17 7 0 27 1 6 15 0 28 2 6 17 0 15 29 2 0 17 0 0 30 1 7 31 0 32 1 31 0 33 34 1 31 0 0 35 1 0 31 0 36 1 0 13 0 22 2 0 17 7 0 27 2 0 17 18 0 20 2 0 0 0 8 12 2 0 15 7 0 25 2 0 15 18 0 21 1 0 31 0 36 2 0 17 18 0 19 2 0 17 0 0 30 1 0 15 0 16)))))) (QUOTE |lookupComplete|))) +(DEFUN |HOAGG-;=;2AB;9| (|x| |y| |$|) + (PROG (|b| #1=#:G82416 |a| #2=#:G82415 #3=#:G82412 #4=#:G82410 #5=#:G82411) + (RETURN + (SEQ + (COND + ((SPADCALL |x| (SPADCALL |y| (QREFELT |$| 28)) (QREFELT |$| 29)) + (PROGN + (LETT #5# NIL |HOAGG-;=;2AB;9|) + (SEQ + (LETT |b| NIL |HOAGG-;=;2AB;9|) + (LETT #1# (SPADCALL |y| (QREFELT |$| 14)) |HOAGG-;=;2AB;9|) + (LETT |a| NIL |HOAGG-;=;2AB;9|) + (LETT #2# (SPADCALL |x| (QREFELT |$| 14)) |HOAGG-;=;2AB;9|) + G190 + (COND + ((OR + (ATOM #2#) + (PROGN (LETT |a| (CAR #2#) |HOAGG-;=;2AB;9|) NIL) + (ATOM #1#) + (PROGN (LETT |b| (CAR #1#) |HOAGG-;=;2AB;9|) NIL)) + (GO G191))) + (SEQ + (EXIT + (PROGN + (LETT #3# (SPADCALL |a| |b| (QREFELT |$| 23)) |HOAGG-;=;2AB;9|) + (COND + (#5# + (LETT #4# + (COND (#4# #3#) ((QUOTE T) (QUOTE NIL))) + |HOAGG-;=;2AB;9|)) + ((QUOTE T) + (PROGN + (LETT #4# #3# |HOAGG-;=;2AB;9|) + (LETT #5# (QUOTE T) |HOAGG-;=;2AB;9|))))))) + (LETT #2# + (PROG1 + (CDR #2#) + (LETT #1# (CDR #1#) |HOAGG-;=;2AB;9|)) + |HOAGG-;=;2AB;9|) + (GO G190) + G191 + (EXIT NIL)) + (COND (#5# #4#) ((QUOTE T) (QUOTE T))))) + ((QUOTE T) (QUOTE NIL))))))) + +(DEFUN |HOAGG-;coerce;AOf;10| (|x| |$|) + (PROG (#1=#:G82420 |a| #2=#:G82421) + (RETURN + (SEQ + (SPADCALL + (SPADCALL + (PROGN + (LETT #1# NIL |HOAGG-;coerce;AOf;10|) + (SEQ + (LETT |a| NIL |HOAGG-;coerce;AOf;10|) + (LETT #2# (SPADCALL |x| (QREFELT |$| 14)) |HOAGG-;coerce;AOf;10|) + G190 + (COND + ((OR + (ATOM #2#) + (PROGN (LETT |a| (CAR #2#) |HOAGG-;coerce;AOf;10|) NIL)) + (GO G191))) + (SEQ + (EXIT + (LETT #1# + (CONS (SPADCALL |a| (QREFELT |$| 32)) #1#) + |HOAGG-;coerce;AOf;10|))) + (LETT #2# (CDR #2#) |HOAGG-;coerce;AOf;10|) + (GO G190) + G191 + (EXIT (NREVERSE0 #1#)))) + (QREFELT |$| 34)) + (QREFELT |$| 35)))))) + +(DEFUN |HomogeneousAggregate&| (|#1| |#2|) + (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|HomogeneousAggregate&|)) + (LETT |DV$2| (|devaluate| |#2|) . #1#) + (LETT |dv$| (LIST (QUOTE |HomogeneousAggregate&|) |DV$1| |DV$2|) . #1#) + (LETT |$| (GETREFV 38) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 + (LETT |pv$| + (|buildPredVector| 0 0 + (LIST + (|HasAttribute| |#1| (QUOTE |finiteAggregate|)) + (|HasAttribute| |#1| (QUOTE |shallowlyMutable|)) + (|HasCategory| |#2| (LIST (QUOTE |Evalable|) (|devaluate| |#2|))) + (|HasCategory| |#2| (QUOTE (|SetCategory|))))) + . #1#)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + (QSETREFV |$| 7 |#2|) + (COND + ((|testBitVector| |pv$| 3) + (QSETREFV |$| 12 (CONS (|dispatchFunction| |HOAGG-;eval;ALA;1|) |$|)))) + (COND + ((|testBitVector| |pv$| 1) + (PROGN + (QSETREFV |$| 16 (CONS (|dispatchFunction| |HOAGG-;#;ANni;2|) |$|)) + (QSETREFV |$| 19 (CONS (|dispatchFunction| |HOAGG-;any?;MAB;3|) |$|)) + (QSETREFV |$| 20 (CONS (|dispatchFunction| |HOAGG-;every?;MAB;4|) |$|)) + (QSETREFV |$| 21 (CONS (|dispatchFunction| |HOAGG-;count;MANni;5|) |$|)) + (QSETREFV |$| 22 (CONS (|dispatchFunction| |HOAGG-;members;AL;6|) |$|)) + (COND + ((|testBitVector| |pv$| 4) + (PROGN + (QSETREFV |$| 25 + (CONS (|dispatchFunction| |HOAGG-;count;SANni;7|) |$|)) + (QSETREFV |$| 27 + (CONS (|dispatchFunction| |HOAGG-;member?;SAB;8|) |$|)) + (QSETREFV |$| 30 + (CONS (|dispatchFunction| |HOAGG-;=;2AB;9|) |$|)) + (QSETREFV |$| 36 + (CONS (|dispatchFunction| |HOAGG-;coerce;AOf;10|) |$|)))))))) + |$|)))) + +(MAKEPROP + (QUOTE |HomogeneousAggregate&|) + (QUOTE |infovec|) + (LIST + (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|List| 37) + (0 . |eval|) (|Mapping| 7 7) (6 . |map|) (12 . |eval|) (|List| 7) + (18 . |parts|) (|NonNegativeInteger|) (23 . |#|) (|Boolean|) + (|Mapping| 17 7) (28 . |any?|) (34 . |every?|) (40 . |count|) + (46 . |members|) (51 . |=|) (57 . |count|) (63 . |count|) (69 . |any?|) + (75 . |member?|) (81 . |#|) (86 . |size?|) (92 . |=|) (|OutputForm|) + (98 . |coerce|) (|List| |$|) (103 . |commaSeparate|) (108 . |bracket|) + (113 . |coerce|) (|Equation| 7))) + (QUOTE #(|members| 118 |member?| 123 |every?| 129 |eval| 135 |count| 141 + |coerce| 153 |any?| 158 |=| 164 |#| 170)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS + (QUOTE #()) + (CONS + (QUOTE #()) + (|makeByteWordVec2| 36 + (QUOTE (2 7 0 0 8 9 2 6 0 10 0 11 2 0 0 0 8 12 1 6 13 0 14 1 0 15 0 + 16 2 0 17 18 0 19 2 0 17 18 0 20 2 0 15 18 0 21 1 0 13 0 22 2 7 17 + 0 0 23 2 6 15 18 0 24 2 0 15 7 0 25 2 6 17 18 0 26 2 0 17 7 0 27 1 + 6 15 0 28 2 6 17 0 15 29 2 0 17 0 0 30 1 7 31 0 32 1 31 0 33 34 1 + 31 0 0 35 1 0 31 0 36 1 0 13 0 22 2 0 17 7 0 27 2 0 17 18 0 20 2 0 + 0 0 8 12 2 0 15 7 0 25 2 0 15 18 0 21 1 0 31 0 36 2 0 17 18 0 19 2 + 0 17 0 0 30 1 0 15 0 16)))))) + (QUOTE |lookupComplete|))) @ \section{category IXAGG IndexedAggregate} <>= @@ -3696,8 +4182,8 @@ IndexedAggregate(Index: SetCategory, Entry: Type): Category == ++ index?(i,u) tests if i is an index of aggregate u. indices: % -> List Index ++ indices(u) returns a list of indices of aggregate u in no - ++ particular order. - -- to become indices: % -> Index* and indices: % -> Iterator(Index,Index). + ++ particular order. to become indices: + -- % -> Index* and indices: % -> Iterator(Index,Index). -- map: ((Entry,Entry)->Entry,%,%,Entry) -> % -- ++ exists c = map(f,a,b,x), i:Index where -- ++ c.i = f(a(i,x),b(i,x)) | index?(i,a) or index?(i,b) @@ -3855,9 +4341,9 @@ KeyedDictionary(Key:SetCategory, Entry:SetCategory): Category == ++ Most of the exported operations for linear aggregates are non-destructive ++ but are not always efficient for a particular aggregate. ++ For example, \spadfun{concat} of two lists needs only to copy its first -++ argument, whereas \spadfun{concat} of two arrays needs to copy both arguments. -++ Most of the operations exported here apply to infinite objects (e.g. streams) -++ as well to finite ones. +++ argument, whereas \spadfun{concat} of two arrays needs to copy both +++ arguments. Most of the operations exported here apply to infinite +++ objects (e.g. streams) as well to finite ones. ++ For finite linear aggregates, see \spadtype{FiniteLinearAggregate}. LinearAggregate(S:Type): Category == Join(IndexedAggregate(Integer, S), Collection(S)) with @@ -3872,11 +4358,12 @@ LinearAggregate(S:Type): Category == concat: (%,%) -> % ++ concat(u,v) returns an aggregate consisting of the elements of u ++ followed by the elements of v. - ++ Note: if \axiom{w = concat(u,v)} then \axiom{w.i = u.i for i in indices u} + ++ Note: if \axiom{w = concat(u,v)} then + ++ \axiom{w.i = u.i for i in indices u} ++ and \axiom{w.(j + maxIndex u) = v.j for j in indices v}. concat: List % -> % - ++ concat(u), where u is a lists of aggregates \axiom{[a,b,...,c]}, returns - ++ a single aggregate consisting of the elements of \axiom{a} + ++ concat(u), where u is a lists of aggregates \axiom{[a,b,...,c]}, + ++ returns a single aggregate consisting of the elements of \axiom{a} ++ followed by those ++ of b followed ... by the elements of c. ++ Note: \axiom{concat(a,b,...,c) = concat(a,concat(b,...,c))}. @@ -3890,7 +4377,8 @@ LinearAggregate(S:Type): Category == ++ Note: in general, \axiom{a.s = [a.k for i in s]}. delete: (%,Integer) -> % ++ delete(u,i) returns a copy of u with the \axiom{i}th element deleted. - ++ Note: for lists, \axiom{delete(a,i) == concat(a(0..i - 1),a(i + 1,..))}. + ++ Note: for lists, + ++ \axiom{delete(a,i) == concat(a(0..i - 1),a(i + 1,..))}. delete: (%,UniversalSegment(Integer)) -> % ++ delete(u,i..j) returns a copy of u with the \axiom{i}th through ++ \axiom{j}th element deleted. @@ -3950,9 +4438,59 @@ Note that this code is not included in the generated catdef.spad file. (SETQ |LinearAggregate;AL| (QUOTE NIL)) -(DEFUN |LinearAggregate| (#1=#:G85818) (LET (#2=#:G85819) (COND ((SETQ #2# (|assoc| (|devaluate| #1#) |LinearAggregate;AL|)) (CDR #2#)) (T (SETQ |LinearAggregate;AL| (|cons5| (CONS (|devaluate| #1#) (SETQ #2# (|LinearAggregate;| #1#))) |LinearAggregate;AL|)) #2#)))) - -(DEFUN |LinearAggregate;| (|t#1|) (PROG (#1=#:G85817) (RETURN (PROG1 (LETT #1# (|sublisV| (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) (|sublisV| (PAIR (QUOTE (#2=#:G85816)) (LIST (QUOTE (|Integer|)))) (COND (|LinearAggregate;CAT|) ((QUOTE T) (LETT |LinearAggregate;CAT| (|Join| (|IndexedAggregate| (QUOTE #2#) (QUOTE |t#1|)) (|Collection| (QUOTE |t#1|)) (|mkCategory| (QUOTE |domain|) (QUOTE (((|new| (|$| (|NonNegativeInteger|) |t#1|)) T) ((|concat| (|$| |$| |t#1|)) T) ((|concat| (|$| |t#1| |$|)) T) ((|concat| (|$| |$| |$|)) T) ((|concat| (|$| (|List| |$|))) T) ((|map| (|$| (|Mapping| |t#1| |t#1| |t#1|) |$| |$|)) T) ((|elt| (|$| |$| (|UniversalSegment| (|Integer|)))) T) ((|delete| (|$| |$| (|Integer|))) T) ((|delete| (|$| |$| (|UniversalSegment| (|Integer|)))) T) ((|insert| (|$| |t#1| |$| (|Integer|))) T) ((|insert| (|$| |$| |$| (|Integer|))) T) ((|setelt| (|t#1| |$| (|UniversalSegment| (|Integer|)) |t#1|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))))) NIL (QUOTE ((|UniversalSegment| (|Integer|)) (|Integer|) (|List| |$|) (|NonNegativeInteger|))) NIL)) . #3=(|LinearAggregate|)))))) . #3#) (SETELT #1# 0 (LIST (QUOTE |LinearAggregate|) (|devaluate| |t#1|))))))) +(DEFUN |LinearAggregate| (#1=#:G85818) + (LET (#2=#:G85819) + (COND + ((SETQ #2# (|assoc| (|devaluate| #1#) |LinearAggregate;AL|)) (CDR #2#)) + (T + (SETQ |LinearAggregate;AL| + (|cons5| + (CONS (|devaluate| #1#) (SETQ #2# (|LinearAggregate;| #1#))) + |LinearAggregate;AL|)) + #2#)))) + +(DEFUN |LinearAggregate;| (|t#1|) + (PROG (#1=#:G85817) + (RETURN + (PROG1 + (LETT #1# + (|sublisV| + (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) + (|sublisV| + (PAIR (QUOTE (#2=#:G85816)) (LIST (QUOTE (|Integer|)))) + (COND + (|LinearAggregate;CAT|) + ((QUOTE T) + (LETT |LinearAggregate;CAT| + (|Join| + (|IndexedAggregate| (QUOTE #2#) (QUOTE |t#1|)) + (|Collection| (QUOTE |t#1|)) + (|mkCategory| + (QUOTE |domain|) + (QUOTE ( + ((|new| (|$| (|NonNegativeInteger|) |t#1|)) T) + ((|concat| (|$| |$| |t#1|)) T) + ((|concat| (|$| |t#1| |$|)) T) + ((|concat| (|$| |$| |$|)) T) + ((|concat| (|$| (|List| |$|))) T) + ((|map| (|$| (|Mapping| |t#1| |t#1| |t#1|) |$| |$|)) T) + ((|elt| (|$| |$| (|UniversalSegment| (|Integer|)))) T) + ((|delete| (|$| |$| (|Integer|))) T) + ((|delete| (|$| |$| (|UniversalSegment| (|Integer|)))) T) + ((|insert| (|$| |t#1| |$| (|Integer|))) T) + ((|insert| (|$| |$| |$| (|Integer|))) T) + ((|setelt| (|t#1| |$| (|UniversalSegment| (|Integer|)) |t#1|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))))) + NIL + (QUOTE ( + (|UniversalSegment| (|Integer|)) + (|Integer|) + (|List| |$|) + (|NonNegativeInteger|))) + NIL)) + . #3=(|LinearAggregate|)))))) + . #3#) + (SETELT #1# 0 (LIST (QUOTE |LinearAggregate|) (|devaluate| |t#1|))))))) @ \section{LNAGG-.lsp BOOTSTRAP} {\bf LNAGG-} depends on {\bf LNAGG}. We need to break this cycle to build @@ -3967,21 +4505,88 @@ Note that this code is not included in the generated catdef.spad file. (|/VERSIONCHECK| 2) -(DEFUN |LNAGG-;indices;AL;1| (|a| |$|) (PROG (#1=#:G85833 |i| #2=#:G85834) (RETURN (SEQ (PROGN (LETT #1# NIL |LNAGG-;indices;AL;1|) (SEQ (LETT |i| (SPADCALL |a| (QREFELT |$| 9)) |LNAGG-;indices;AL;1|) (LETT #2# (SPADCALL |a| (QREFELT |$| 10)) |LNAGG-;indices;AL;1|) G190 (COND ((|>| |i| #2#) (GO G191))) (SEQ (EXIT (LETT #1# (CONS |i| #1#) |LNAGG-;indices;AL;1|))) (LETT |i| (|+| |i| 1) |LNAGG-;indices;AL;1|) (GO G190) G191 (EXIT (NREVERSE0 #1#)))))))) - -(DEFUN |LNAGG-;index?;IAB;2| (|i| |a| |$|) (COND ((OR (|<| |i| (SPADCALL |a| (QREFELT |$| 9))) (|<| (SPADCALL |a| (QREFELT |$| 10)) |i|)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) - -(DEFUN |LNAGG-;concat;ASA;3| (|a| |x| |$|) (SPADCALL |a| (SPADCALL 1 |x| (QREFELT |$| 16)) (QREFELT |$| 17))) - -(DEFUN |LNAGG-;concat;S2A;4| (|x| |y| |$|) (SPADCALL (SPADCALL 1 |x| (QREFELT |$| 16)) |y| (QREFELT |$| 17))) - -(DEFUN |LNAGG-;insert;SAIA;5| (|x| |a| |i| |$|) (SPADCALL (SPADCALL 1 |x| (QREFELT |$| 16)) |a| |i| (QREFELT |$| 20))) - -(DEFUN |LNAGG-;maxIndex;AI;6| (|l| |$|) (|+| (|-| (SPADCALL |l| (QREFELT |$| 22)) 1) (SPADCALL |l| (QREFELT |$| 9)))) - -(DEFUN |LinearAggregate&| (|#1| |#2|) (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) (RETURN (PROGN (LETT |DV$1| (|devaluate| |#1|) . #1=(|LinearAggregate&|)) (LETT |DV$2| (|devaluate| |#2|) . #1#) (LETT |dv$| (LIST (QUOTE |LinearAggregate&|) |DV$1| |DV$2|) . #1#) (LETT |$| (GETREFV 25) . #1#) (QSETREFV |$| 0 |dv$|) (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 (LIST (|HasAttribute| |#1| (QUOTE |shallowlyMutable|)))) . #1#)) (|stuffDomainSlots| |$|) (QSETREFV |$| 6 |#1|) (QSETREFV |$| 7 |#2|) (COND ((|HasAttribute| |#1| (QUOTE |finiteAggregate|)) (QSETREFV |$| 23 (CONS (|dispatchFunction| |LNAGG-;maxIndex;AI;6|) |$|)))) |$|)))) - -(MAKEPROP (QUOTE |LinearAggregate&|) (QUOTE |infovec|) (LIST (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|Integer|) (0 . |minIndex|) (5 . |maxIndex|) (|List| 8) |LNAGG-;indices;AL;1| (|Boolean|) |LNAGG-;index?;IAB;2| (|NonNegativeInteger|) (10 . |new|) (16 . |concat|) |LNAGG-;concat;ASA;3| |LNAGG-;concat;S2A;4| (22 . |insert|) |LNAGG-;insert;SAIA;5| (29 . |#|) (34 . |maxIndex|) (|List| |$|))) (QUOTE #(|maxIndex| 39 |insert| 44 |indices| 51 |index?| 56 |concat| 62)) (QUOTE NIL) (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) (CONS (QUOTE #()) (CONS (QUOTE #()) (|makeByteWordVec2| 23 (QUOTE (1 6 8 0 9 1 6 8 0 10 2 6 0 15 7 16 2 6 0 0 0 17 3 6 0 0 0 8 20 1 6 15 0 22 1 0 8 0 23 1 0 8 0 23 3 0 0 7 0 8 21 1 0 11 0 12 2 0 13 8 0 14 2 0 0 0 7 18 2 0 0 7 0 19)))))) (QUOTE |lookupComplete|))) +(DEFUN |LNAGG-;indices;AL;1| (|a| |$|) + (PROG (#1=#:G85833 |i| #2=#:G85834) + (RETURN + (SEQ + (PROGN + (LETT #1# NIL |LNAGG-;indices;AL;1|) + (SEQ + (LETT |i| (SPADCALL |a| (QREFELT |$| 9)) |LNAGG-;indices;AL;1|) + (LETT #2# (SPADCALL |a| (QREFELT |$| 10)) |LNAGG-;indices;AL;1|) + G190 + (COND ((|>| |i| #2#) (GO G191))) + (SEQ (EXIT (LETT #1# (CONS |i| #1#) |LNAGG-;indices;AL;1|))) + (LETT |i| (|+| |i| 1) |LNAGG-;indices;AL;1|) + (GO G190) + G191 + (EXIT (NREVERSE0 #1#)))))))) + +(DEFUN |LNAGG-;index?;IAB;2| (|i| |a| |$|) + (COND + ((OR + (|<| |i| (SPADCALL |a| (QREFELT |$| 9))) + (|<| (SPADCALL |a| (QREFELT |$| 10)) |i|)) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + +(DEFUN |LNAGG-;concat;ASA;3| (|a| |x| |$|) + (SPADCALL |a| (SPADCALL 1 |x| (QREFELT |$| 16)) (QREFELT |$| 17))) + +(DEFUN |LNAGG-;concat;S2A;4| (|x| |y| |$|) + (SPADCALL (SPADCALL 1 |x| (QREFELT |$| 16)) |y| (QREFELT |$| 17))) + +(DEFUN |LNAGG-;insert;SAIA;5| (|x| |a| |i| |$|) + (SPADCALL (SPADCALL 1 |x| (QREFELT |$| 16)) |a| |i| (QREFELT |$| 20))) + +(DEFUN |LNAGG-;maxIndex;AI;6| (|l| |$|) + (|+| (|-| (SPADCALL |l| (QREFELT |$| 22)) 1) (SPADCALL |l| (QREFELT |$| 9)))) + +(DEFUN |LinearAggregate&| (|#1| |#2|) + (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|LinearAggregate&|)) + (LETT |DV$2| (|devaluate| |#2|) . #1#) + (LETT |dv$| (LIST (QUOTE |LinearAggregate&|) |DV$1| |DV$2|) . #1#) + (LETT |$| (GETREFV 25) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 + (LETT |pv$| + (|buildPredVector| 0 0 + (LIST (|HasAttribute| |#1| (QUOTE |shallowlyMutable|)))) + . #1#)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + (QSETREFV |$| 7 |#2|) + (COND + ((|HasAttribute| |#1| (QUOTE |finiteAggregate|)) + (QSETREFV |$| 23 + (CONS (|dispatchFunction| |LNAGG-;maxIndex;AI;6|) |$|)))) + |$|)))) + +(MAKEPROP + (QUOTE |LinearAggregate&|) + (QUOTE |infovec|) + (LIST + (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|Integer|) + (0 . |minIndex|) (5 . |maxIndex|) (|List| 8) |LNAGG-;indices;AL;1| + (|Boolean|) |LNAGG-;index?;IAB;2| (|NonNegativeInteger|) (10 . |new|) + (16 . |concat|) |LNAGG-;concat;ASA;3| |LNAGG-;concat;S2A;4| + (22 . |insert|) |LNAGG-;insert;SAIA;5| (29 . |#|) (34 . |maxIndex|) + (|List| |$|))) + (QUOTE #(|maxIndex| 39 |insert| 44 |indices| 51 |index?| 56 |concat| 62)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS + (QUOTE #()) + (CONS + (QUOTE #()) + (|makeByteWordVec2| 23 (QUOTE (1 6 8 0 9 1 6 8 0 10 2 6 0 15 7 + 16 2 6 0 0 0 17 3 6 0 0 0 8 20 1 6 15 0 22 1 0 8 0 23 1 0 8 0 23 3 0 + 0 7 0 8 21 1 0 11 0 12 2 0 13 8 0 14 2 0 0 0 7 18 2 0 0 7 0 19)))))) + (QUOTE |lookupComplete|))) @ \section{category LSAGG ListAggregate} <>= @@ -4232,9 +4837,41 @@ Note that this code is not included in the generated catdef.spad file. (SETQ |ListAggregate;AL| (QUOTE NIL)) -(DEFUN |ListAggregate| (#1=#:G87500) (LET (#2=#:G87501) (COND ((SETQ #2# (|assoc| (|devaluate| #1#) |ListAggregate;AL|)) (CDR #2#)) (T (SETQ |ListAggregate;AL| (|cons5| (CONS (|devaluate| #1#) (SETQ #2# (|ListAggregate;| #1#))) |ListAggregate;AL|)) #2#)))) - -(DEFUN |ListAggregate;| (|t#1|) (PROG (#1=#:G87499) (RETURN (PROG1 (LETT #1# (|sublisV| (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) (COND (|ListAggregate;CAT|) ((QUOTE T) (LETT |ListAggregate;CAT| (|Join| (|StreamAggregate| (QUOTE |t#1|)) (|FiniteLinearAggregate| (QUOTE |t#1|)) (|ExtensibleLinearAggregate| (QUOTE |t#1|)) (|mkCategory| (QUOTE |domain|) (QUOTE (((|list| (|$| |t#1|)) T))) NIL (QUOTE NIL) NIL)) . #2=(|ListAggregate|))))) . #2#) (SETELT #1# 0 (LIST (QUOTE |ListAggregate|) (|devaluate| |t#1|))))))) +(DEFUN |ListAggregate| (#1=#:G87500) + (LET (#2=#:G87501) + (COND + ((SETQ #2# (|assoc| (|devaluate| #1#) |ListAggregate;AL|)) (CDR #2#)) + (T + (SETQ |ListAggregate;AL| + (|cons5| + (CONS (|devaluate| #1#) (SETQ #2# (|ListAggregate;| #1#))) + |ListAggregate;AL|)) + #2#)))) + +(DEFUN |ListAggregate;| (|t#1|) + (PROG (#1=#:G87499) + (RETURN + (PROG1 + (LETT #1# + (|sublisV| + (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) + (COND + (|ListAggregate;CAT|) + ((QUOTE T) + (LETT |ListAggregate;CAT| + (|Join| + (|StreamAggregate| (QUOTE |t#1|)) + (|FiniteLinearAggregate| (QUOTE |t#1|)) + (|ExtensibleLinearAggregate| (QUOTE |t#1|)) + (|mkCategory| + (QUOTE |domain|) + (QUOTE (((|list| (|$| |t#1|)) T))) + NIL + (QUOTE NIL) + NIL)) + . #2=(|ListAggregate|))))) + . #2#) + (SETELT #1# 0 (LIST (QUOTE |ListAggregate|) (|devaluate| |t#1|))))))) @ \section{LSAGG-.lsp BOOTSTRAP} {\bf LSAGG-} depends on {\bf LSAGG}. We need to break this cycle to build @@ -4249,61 +4886,846 @@ Note that this code is not included in the generated catdef.spad file. (|/VERSIONCHECK| 2) -(DEFUN |LSAGG-;sort!;M2A;1| (|f| |l| |$|) (|LSAGG-;mergeSort| |f| |l| (SPADCALL |l| (QREFELT |$| 9)) |$|)) - -(DEFUN |LSAGG-;list;SA;2| (|x| |$|) (SPADCALL |x| (SPADCALL (QREFELT |$| 12)) (QREFELT |$| 13))) - -(DEFUN |LSAGG-;reduce;MAS;3| (|f| |x| |$|) (COND ((SPADCALL |x| (QREFELT |$| 16)) (|error| "reducing over an empty list needs the 3 argument form")) ((QUOTE T) (SPADCALL |f| (SPADCALL |x| (QREFELT |$| 17)) (SPADCALL |x| (QREFELT |$| 18)) (QREFELT |$| 20))))) - -(DEFUN |LSAGG-;merge;M3A;4| (|f| |p| |q| |$|) (SPADCALL |f| (SPADCALL |p| (QREFELT |$| 22)) (SPADCALL |q| (QREFELT |$| 22)) (QREFELT |$| 23))) - -(DEFUN |LSAGG-;select!;M2A;5| (|f| |x| |$|) (PROG (|y| |z|) (RETURN (SEQ (SEQ G190 (COND ((NULL (COND ((OR (SPADCALL |x| (QREFELT |$| 16)) (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) |f|)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;select!;M2A;5|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT (COND ((SPADCALL |x| (QREFELT |$| 16)) |x|) ((QUOTE T) (SEQ (LETT |y| |x| |LSAGG-;select!;M2A;5|) (LETT |z| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;select!;M2A;5|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |z| (QREFELT |$| 16)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (COND ((SPADCALL (SPADCALL |z| (QREFELT |$| 18)) |f|) (SEQ (LETT |y| |z| |LSAGG-;select!;M2A;5|) (EXIT (LETT |z| (SPADCALL |z| (QREFELT |$| 17)) |LSAGG-;select!;M2A;5|)))) ((QUOTE T) (SEQ (LETT |z| (SPADCALL |z| (QREFELT |$| 17)) |LSAGG-;select!;M2A;5|) (EXIT (SPADCALL |y| |z| (QREFELT |$| 25)))))))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |x|))))))))) - -(DEFUN |LSAGG-;merge!;M3A;6| (|f| |p| |q| |$|) (PROG (|r| |t|) (RETURN (SEQ (COND ((SPADCALL |p| (QREFELT |$| 16)) |q|) ((SPADCALL |q| (QREFELT |$| 16)) |p|) ((SPADCALL |p| |q| (QREFELT |$| 28)) (|error| "cannot merge a list into itself")) ((QUOTE T) (SEQ (COND ((SPADCALL (SPADCALL |p| (QREFELT |$| 18)) (SPADCALL |q| (QREFELT |$| 18)) |f|) (SEQ (LETT |r| (LETT |t| |p| |LSAGG-;merge!;M3A;6|) |LSAGG-;merge!;M3A;6|) (EXIT (LETT |p| (SPADCALL |p| (QREFELT |$| 17)) |LSAGG-;merge!;M3A;6|)))) ((QUOTE T) (SEQ (LETT |r| (LETT |t| |q| |LSAGG-;merge!;M3A;6|) |LSAGG-;merge!;M3A;6|) (EXIT (LETT |q| (SPADCALL |q| (QREFELT |$| 17)) |LSAGG-;merge!;M3A;6|))))) (SEQ G190 (COND ((NULL (COND ((OR (SPADCALL |p| (QREFELT |$| 16)) (SPADCALL |q| (QREFELT |$| 16))) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (COND ((SPADCALL (SPADCALL |p| (QREFELT |$| 18)) (SPADCALL |q| (QREFELT |$| 18)) |f|) (SEQ (SPADCALL |t| |p| (QREFELT |$| 25)) (LETT |t| |p| |LSAGG-;merge!;M3A;6|) (EXIT (LETT |p| (SPADCALL |p| (QREFELT |$| 17)) |LSAGG-;merge!;M3A;6|)))) ((QUOTE T) (SEQ (SPADCALL |t| |q| (QREFELT |$| 25)) (LETT |t| |q| |LSAGG-;merge!;M3A;6|) (EXIT (LETT |q| (SPADCALL |q| (QREFELT |$| 17)) |LSAGG-;merge!;M3A;6|))))))) NIL (GO G190) G191 (EXIT NIL)) (SPADCALL |t| (COND ((SPADCALL |p| (QREFELT |$| 16)) |q|) ((QUOTE T) |p|)) (QREFELT |$| 25)) (EXIT |r|)))))))) - -(DEFUN |LSAGG-;insert!;SAIA;7| (|s| |x| |i| |$|) (PROG (|m| #1=#:G87547 |y| |z|) (RETURN (SEQ (LETT |m| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;insert!;SAIA;7|) (EXIT (COND ((|<| |i| |m|) (|error| "index out of range")) ((EQL |i| |m|) (SPADCALL |s| |x| (QREFELT |$| 13))) ((QUOTE T) (SEQ (LETT |y| (SPADCALL |x| (PROG1 (LETT #1# (|-| (|-| |i| 1) |m|) |LSAGG-;insert!;SAIA;7|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 32)) |LSAGG-;insert!;SAIA;7|) (LETT |z| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;insert!;SAIA;7|) (SPADCALL |y| (SPADCALL |s| |z| (QREFELT |$| 13)) (QREFELT |$| 25)) (EXIT |x|))))))))) - -(DEFUN |LSAGG-;insert!;2AIA;8| (|w| |x| |i| |$|) (PROG (|m| #1=#:G87551 |y| |z|) (RETURN (SEQ (LETT |m| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;insert!;2AIA;8|) (EXIT (COND ((|<| |i| |m|) (|error| "index out of range")) ((EQL |i| |m|) (SPADCALL |w| |x| (QREFELT |$| 34))) ((QUOTE T) (SEQ (LETT |y| (SPADCALL |x| (PROG1 (LETT #1# (|-| (|-| |i| 1) |m|) |LSAGG-;insert!;2AIA;8|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 32)) |LSAGG-;insert!;2AIA;8|) (LETT |z| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;insert!;2AIA;8|) (SPADCALL |y| |w| (QREFELT |$| 25)) (SPADCALL |y| |z| (QREFELT |$| 34)) (EXIT |x|))))))))) - -(DEFUN |LSAGG-;remove!;M2A;9| (|f| |x| |$|) (PROG (|p| |q|) (RETURN (SEQ (SEQ G190 (COND ((NULL (COND ((SPADCALL |x| (QREFELT |$| 16)) (QUOTE NIL)) ((QUOTE T) (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) |f|)))) (GO G191))) (SEQ (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;remove!;M2A;9|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT (COND ((SPADCALL |x| (QREFELT |$| 16)) |x|) ((QUOTE T) (SEQ (LETT |p| |x| |LSAGG-;remove!;M2A;9|) (LETT |q| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;remove!;M2A;9|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |q| (QREFELT |$| 16)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (COND ((SPADCALL (SPADCALL |q| (QREFELT |$| 18)) |f|) (LETT |q| (SPADCALL |p| (SPADCALL |q| (QREFELT |$| 17)) (QREFELT |$| 25)) |LSAGG-;remove!;M2A;9|)) ((QUOTE T) (SEQ (LETT |p| |q| |LSAGG-;remove!;M2A;9|) (EXIT (LETT |q| (SPADCALL |q| (QREFELT |$| 17)) |LSAGG-;remove!;M2A;9|))))))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |x|))))))))) - -(DEFUN |LSAGG-;delete!;AIA;10| (|x| |i| |$|) (PROG (|m| #1=#:G87564 |y|) (RETURN (SEQ (LETT |m| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;delete!;AIA;10|) (EXIT (COND ((|<| |i| |m|) (|error| "index out of range")) ((EQL |i| |m|) (SPADCALL |x| (QREFELT |$| 17))) ((QUOTE T) (SEQ (LETT |y| (SPADCALL |x| (PROG1 (LETT #1# (|-| (|-| |i| 1) |m|) |LSAGG-;delete!;AIA;10|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 32)) |LSAGG-;delete!;AIA;10|) (SPADCALL |y| (SPADCALL |y| 2 (QREFELT |$| 32)) (QREFELT |$| 25)) (EXIT |x|))))))))) - -(DEFUN |LSAGG-;delete!;AUsA;11| (|x| |i| |$|) (PROG (|l| |m| |h| #1=#:G87569 #2=#:G87570 |t| #3=#:G87571) (RETURN (SEQ (LETT |l| (SPADCALL |i| (QREFELT |$| 39)) |LSAGG-;delete!;AUsA;11|) (LETT |m| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;delete!;AUsA;11|) (EXIT (COND ((|<| |l| |m|) (|error| "index out of range")) ((QUOTE T) (SEQ (LETT |h| (COND ((SPADCALL |i| (QREFELT |$| 40)) (SPADCALL |i| (QREFELT |$| 41))) ((QUOTE T) (SPADCALL |x| (QREFELT |$| 42)))) |LSAGG-;delete!;AUsA;11|) (EXIT (COND ((|<| |h| |l|) |x|) ((EQL |l| |m|) (SPADCALL |x| (PROG1 (LETT #1# (|-| (|+| |h| 1) |m|) |LSAGG-;delete!;AUsA;11|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 32))) ((QUOTE T) (SEQ (LETT |t| (SPADCALL |x| (PROG1 (LETT #2# (|-| (|-| |l| 1) |m|) |LSAGG-;delete!;AUsA;11|) (|check-subtype| (|>=| #2# 0) (QUOTE (|NonNegativeInteger|)) #2#)) (QREFELT |$| 32)) |LSAGG-;delete!;AUsA;11|) (SPADCALL |t| (SPADCALL |t| (PROG1 (LETT #3# (|+| (|-| |h| |l|) 2) |LSAGG-;delete!;AUsA;11|) (|check-subtype| (|>=| #3# 0) (QUOTE (|NonNegativeInteger|)) #3#)) (QREFELT |$| 32)) (QREFELT |$| 25)) (EXIT |x|))))))))))))) - -(DEFUN |LSAGG-;find;MAU;12| (|f| |x| |$|) (SEQ (SEQ G190 (COND ((NULL (COND ((OR (SPADCALL |x| (QREFELT |$| 16)) (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) |f|)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;find;MAU;12|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT (COND ((SPADCALL |x| (QREFELT |$| 16)) (CONS 1 "failed")) ((QUOTE T) (CONS 0 (SPADCALL |x| (QREFELT |$| 18)))))))) - -(DEFUN |LSAGG-;position;MAI;13| (|f| |x| |$|) (PROG (|k|) (RETURN (SEQ (SEQ (LETT |k| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;position;MAI;13|) G190 (COND ((NULL (COND ((OR (SPADCALL |x| (QREFELT |$| 16)) (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) |f|)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;position;MAI;13|))) (LETT |k| (|+| |k| 1) |LSAGG-;position;MAI;13|) (GO G190) G191 (EXIT NIL)) (EXIT (COND ((SPADCALL |x| (QREFELT |$| 16)) (|-| (SPADCALL |x| (QREFELT |$| 31)) 1)) ((QUOTE T) |k|))))))) - -(DEFUN |LSAGG-;mergeSort| (|f| |p| |n| |$|) (PROG (#1=#:G87593 |l| |q|) (RETURN (SEQ (COND ((EQL |n| 2) (COND ((SPADCALL (SPADCALL (SPADCALL |p| (QREFELT |$| 17)) (QREFELT |$| 18)) (SPADCALL |p| (QREFELT |$| 18)) |f|) (LETT |p| (SPADCALL |p| (QREFELT |$| 47)) |LSAGG-;mergeSort|))))) (EXIT (COND ((|<| |n| 3) |p|) ((QUOTE T) (SEQ (LETT |l| (PROG1 (LETT #1# (QUOTIENT2 |n| 2) |LSAGG-;mergeSort|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) |LSAGG-;mergeSort|) (LETT |q| (SPADCALL |p| |l| (QREFELT |$| 48)) |LSAGG-;mergeSort|) (LETT |p| (|LSAGG-;mergeSort| |f| |p| |l| |$|) |LSAGG-;mergeSort|) (LETT |q| (|LSAGG-;mergeSort| |f| |q| (|-| |n| |l|) |$|) |LSAGG-;mergeSort|) (EXIT (SPADCALL |f| |p| |q| (QREFELT |$| 23))))))))))) - -(DEFUN |LSAGG-;sorted?;MAB;15| (|f| |l| |$|) (PROG (#1=#:G87603 |p|) (RETURN (SEQ (EXIT (COND ((SPADCALL |l| (QREFELT |$| 16)) (QUOTE T)) ((QUOTE T) (SEQ (LETT |p| (SPADCALL |l| (QREFELT |$| 17)) |LSAGG-;sorted?;MAB;15|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |p| (QREFELT |$| 16)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (COND ((NULL (SPADCALL (SPADCALL |l| (QREFELT |$| 18)) (SPADCALL |p| (QREFELT |$| 18)) |f|)) (PROGN (LETT #1# (QUOTE NIL) |LSAGG-;sorted?;MAB;15|) (GO #1#))) ((QUOTE T) (LETT |p| (SPADCALL (LETT |l| |p| |LSAGG-;sorted?;MAB;15|) (QREFELT |$| 17)) |LSAGG-;sorted?;MAB;15|))))) NIL (GO G190) G191 (EXIT NIL)) (EXIT (QUOTE T)))))) #1# (EXIT #1#))))) - -(DEFUN |LSAGG-;reduce;MA2S;16| (|f| |x| |i| |$|) (PROG (|r|) (RETURN (SEQ (LETT |r| |i| |LSAGG-;reduce;MA2S;16|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |x| (QREFELT |$| 16)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (LETT |r| (SPADCALL |r| (SPADCALL |x| (QREFELT |$| 18)) |f|) |LSAGG-;reduce;MA2S;16|) (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;reduce;MA2S;16|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |r|))))) - -(DEFUN |LSAGG-;reduce;MA3S;17| (|f| |x| |i| |a| |$|) (PROG (|r|) (RETURN (SEQ (LETT |r| |i| |LSAGG-;reduce;MA3S;17|) (SEQ G190 (COND ((NULL (COND ((OR (SPADCALL |x| (QREFELT |$| 16)) (SPADCALL |r| |a| (QREFELT |$| 51))) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (LETT |r| (SPADCALL |r| (SPADCALL |x| (QREFELT |$| 18)) |f|) |LSAGG-;reduce;MA3S;17|) (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;reduce;MA3S;17|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |r|))))) - -(DEFUN |LSAGG-;new;NniSA;18| (|n| |s| |$|) (PROG (|k| |l|) (RETURN (SEQ (LETT |l| (SPADCALL (QREFELT |$| 12)) |LSAGG-;new;NniSA;18|) (SEQ (LETT |k| 1 |LSAGG-;new;NniSA;18|) G190 (COND ((QSGREATERP |k| |n|) (GO G191))) (SEQ (EXIT (LETT |l| (SPADCALL |s| |l| (QREFELT |$| 13)) |LSAGG-;new;NniSA;18|))) (LETT |k| (QSADD1 |k|) |LSAGG-;new;NniSA;18|) (GO G190) G191 (EXIT NIL)) (EXIT |l|))))) - -(DEFUN |LSAGG-;map;M3A;19| (|f| |x| |y| |$|) (PROG (|z|) (RETURN (SEQ (LETT |z| (SPADCALL (QREFELT |$| 12)) |LSAGG-;map;M3A;19|) (SEQ G190 (COND ((NULL (COND ((OR (SPADCALL |x| (QREFELT |$| 16)) (SPADCALL |y| (QREFELT |$| 16))) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (LETT |z| (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) (SPADCALL |y| (QREFELT |$| 18)) |f|) |z| (QREFELT |$| 13)) |LSAGG-;map;M3A;19|) (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;map;M3A;19|) (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;map;M3A;19|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT (SPADCALL |z| (QREFELT |$| 47))))))) - -(DEFUN |LSAGG-;reverse!;2A;20| (|x| |$|) (PROG (|z| |y|) (RETURN (SEQ (COND ((OR (SPADCALL |x| (QREFELT |$| 16)) (SPADCALL (LETT |y| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;reverse!;2A;20|) (QREFELT |$| 16))) |x|) ((QUOTE T) (SEQ (SPADCALL |x| (SPADCALL (QREFELT |$| 12)) (QREFELT |$| 25)) (SEQ G190 (COND ((NULL (COND ((SPADCALL |y| (QREFELT |$| 16)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (LETT |z| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;reverse!;2A;20|) (SPADCALL |y| |x| (QREFELT |$| 25)) (LETT |x| |y| |LSAGG-;reverse!;2A;20|) (EXIT (LETT |y| |z| |LSAGG-;reverse!;2A;20|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |x|)))))))) - -(DEFUN |LSAGG-;copy;2A;21| (|x| |$|) (PROG (|k| |y|) (RETURN (SEQ (LETT |y| (SPADCALL (QREFELT |$| 12)) |LSAGG-;copy;2A;21|) (SEQ (LETT |k| 0 |LSAGG-;copy;2A;21|) G190 (COND ((NULL (COND ((SPADCALL |x| (QREFELT |$| 16)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (COND ((EQL |k| 1000) (COND ((SPADCALL |x| (QREFELT |$| 56)) (EXIT (|error| "cyclic list")))))) (LETT |y| (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) |y| (QREFELT |$| 13)) |LSAGG-;copy;2A;21|) (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;copy;2A;21|))) (LETT |k| (QSADD1 |k|) |LSAGG-;copy;2A;21|) (GO G190) G191 (EXIT NIL)) (EXIT (SPADCALL |y| (QREFELT |$| 47))))))) - -(DEFUN |LSAGG-;copyInto!;2AIA;22| (|y| |x| |s| |$|) (PROG (|m| #1=#:G87636 |z|) (RETURN (SEQ (LETT |m| (SPADCALL |y| (QREFELT |$| 31)) |LSAGG-;copyInto!;2AIA;22|) (EXIT (COND ((|<| |s| |m|) (|error| "index out of range")) ((QUOTE T) (SEQ (LETT |z| (SPADCALL |y| (PROG1 (LETT #1# (|-| |s| |m|) |LSAGG-;copyInto!;2AIA;22|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 32)) |LSAGG-;copyInto!;2AIA;22|) (SEQ G190 (COND ((NULL (COND ((OR (SPADCALL |z| (QREFELT |$| 16)) (SPADCALL |x| (QREFELT |$| 16))) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (SPADCALL |z| (SPADCALL |x| (QREFELT |$| 18)) (QREFELT |$| 58)) (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;copyInto!;2AIA;22|) (EXIT (LETT |z| (SPADCALL |z| (QREFELT |$| 17)) |LSAGG-;copyInto!;2AIA;22|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |y|))))))))) - -(DEFUN |LSAGG-;position;SA2I;23| (|w| |x| |s| |$|) (PROG (|m| #1=#:G87644 |k|) (RETURN (SEQ (LETT |m| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;position;SA2I;23|) (EXIT (COND ((|<| |s| |m|) (|error| "index out of range")) ((QUOTE T) (SEQ (LETT |x| (SPADCALL |x| (PROG1 (LETT #1# (|-| |s| |m|) |LSAGG-;position;SA2I;23|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 32)) |LSAGG-;position;SA2I;23|) (SEQ (LETT |k| |s| |LSAGG-;position;SA2I;23|) G190 (COND ((NULL (COND ((OR (SPADCALL |x| (QREFELT |$| 16)) (SPADCALL |w| (SPADCALL |x| (QREFELT |$| 18)) (QREFELT |$| 51))) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;position;SA2I;23|))) (LETT |k| (|+| |k| 1) |LSAGG-;position;SA2I;23|) (GO G190) G191 (EXIT NIL)) (EXIT (COND ((SPADCALL |x| (QREFELT |$| 16)) (|-| (SPADCALL |x| (QREFELT |$| 31)) 1)) ((QUOTE T) |k|))))))))))) - -(DEFUN |LSAGG-;removeDuplicates!;2A;24| (|l| |$|) (PROG (|p|) (RETURN (SEQ (LETT |p| |l| |LSAGG-;removeDuplicates!;2A;24|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |p| (QREFELT |$| 16)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (LETT |p| (SPADCALL |p| (SPADCALL (CONS (FUNCTION |LSAGG-;removeDuplicates!;2A;24!0|) (VECTOR |$| |p|)) (SPADCALL |p| (QREFELT |$| 17)) (QREFELT |$| 61)) (QREFELT |$| 25)) |LSAGG-;removeDuplicates!;2A;24|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |l|))))) - -(DEFUN |LSAGG-;removeDuplicates!;2A;24!0| (|#1| |$$|) (PROG (|$|) (LETT |$| (QREFELT |$$| 0) |LSAGG-;removeDuplicates!;2A;24|) (RETURN (PROGN (SPADCALL |#1| (SPADCALL (QREFELT |$$| 1) (QREFELT |$| 18)) (QREFELT |$| 51)))))) - -(DEFUN |LSAGG-;<;2AB;25| (|x| |y| |$|) (PROG (#1=#:G87662) (RETURN (SEQ (EXIT (SEQ (SEQ G190 (COND ((NULL (COND ((OR (SPADCALL |x| (QREFELT |$| 16)) (SPADCALL |y| (QREFELT |$| 16))) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (COND ((NULL (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) (SPADCALL |y| (QREFELT |$| 18)) (QREFELT |$| 51))) (PROGN (LETT #1# (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) (SPADCALL |y| (QREFELT |$| 18)) (QREFELT |$| 63)) |LSAGG-;<;2AB;25|) (GO #1#))) ((QUOTE T) (SEQ (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;<;2AB;25|) (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;<;2AB;25|))))))) NIL (GO G190) G191 (EXIT NIL)) (EXIT (COND ((SPADCALL |x| (QREFELT |$| 16)) (COND ((SPADCALL |y| (QREFELT |$| 16)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) ((QUOTE T) (QUOTE NIL)))))) #1# (EXIT #1#))))) - -(DEFUN |ListAggregate&| (|#1| |#2|) (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) (RETURN (PROGN (LETT |DV$1| (|devaluate| |#1|) . #1=(|ListAggregate&|)) (LETT |DV$2| (|devaluate| |#2|) . #1#) (LETT |dv$| (LIST (QUOTE |ListAggregate&|) |DV$1| |DV$2|) . #1#) (LETT |$| (GETREFV 66) . #1#) (QSETREFV |$| 0 |dv$|) (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) (|stuffDomainSlots| |$|) (QSETREFV |$| 6 |#1|) (QSETREFV |$| 7 |#2|) (COND ((|HasCategory| |#2| (QUOTE (|SetCategory|))) (QSETREFV |$| 52 (CONS (|dispatchFunction| |LSAGG-;reduce;MA3S;17|) |$|)))) (COND ((|HasCategory| |#2| (QUOTE (|SetCategory|))) (PROGN (QSETREFV |$| 60 (CONS (|dispatchFunction| |LSAGG-;position;SA2I;23|) |$|)) (QSETREFV |$| 62 (CONS (|dispatchFunction| |LSAGG-;removeDuplicates!;2A;24|) |$|))))) (COND ((|HasCategory| |#2| (QUOTE (|OrderedSet|))) (QSETREFV |$| 64 (CONS (|dispatchFunction| |LSAGG-;<;2AB;25|) |$|)))) |$|)))) - -(MAKEPROP (QUOTE |ListAggregate&|) (QUOTE |infovec|) (LIST (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|NonNegativeInteger|) (0 . |#|) (|Mapping| 15 7 7) |LSAGG-;sort!;M2A;1| (5 . |empty|) (9 . |concat|) |LSAGG-;list;SA;2| (|Boolean|) (15 . |empty?|) (20 . |rest|) (25 . |first|) (|Mapping| 7 7 7) (30 . |reduce|) |LSAGG-;reduce;MAS;3| (37 . |copy|) (42 . |merge!|) |LSAGG-;merge;M3A;4| (49 . |setrest!|) (|Mapping| 15 7) |LSAGG-;select!;M2A;5| (55 . |eq?|) |LSAGG-;merge!;M3A;6| (|Integer|) (61 . |minIndex|) (66 . |rest|) |LSAGG-;insert!;SAIA;7| (72 . |concat!|) |LSAGG-;insert!;2AIA;8| |LSAGG-;remove!;M2A;9| |LSAGG-;delete!;AIA;10| (|UniversalSegment| 30) (78 . |lo|) (83 . |hasHi|) (88 . |hi|) (93 . |maxIndex|) |LSAGG-;delete!;AUsA;11| (|Union| 7 (QUOTE "failed")) |LSAGG-;find;MAU;12| |LSAGG-;position;MAI;13| (98 . |reverse!|) (103 . |split!|) |LSAGG-;sorted?;MAB;15| |LSAGG-;reduce;MA2S;16| (109 . |=|) (115 . |reduce|) |LSAGG-;new;NniSA;18| |LSAGG-;map;M3A;19| |LSAGG-;reverse!;2A;20| (123 . |cyclic?|) |LSAGG-;copy;2A;21| (128 . |setfirst!|) |LSAGG-;copyInto!;2AIA;22| (134 . |position|) (141 . |remove!|) (147 . |removeDuplicates!|) (152 . |<|) (158 . |<|) (|Mapping| 7 7))) (QUOTE #(|sorted?| 164 |sort!| 170 |select!| 176 |reverse!| 182 |removeDuplicates!| 187 |remove!| 192 |reduce| 198 |position| 219 |new| 232 |merge!| 238 |merge| 245 |map| 252 |list| 259 |insert!| 264 |find| 278 |delete!| 284 |copyInto!| 296 |copy| 303 |<| 308)) (QUOTE NIL) (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) (CONS (QUOTE #()) (CONS (QUOTE #()) (|makeByteWordVec2| 64 (QUOTE (1 6 8 0 9 0 6 0 12 2 6 0 7 0 13 1 6 15 0 16 1 6 0 0 17 1 6 7 0 18 3 6 7 19 0 7 20 1 6 0 0 22 3 6 0 10 0 0 23 2 6 0 0 0 25 2 6 15 0 0 28 1 6 30 0 31 2 6 0 0 8 32 2 6 0 0 0 34 1 38 30 0 39 1 38 15 0 40 1 38 30 0 41 1 6 30 0 42 1 6 0 0 47 2 6 0 0 30 48 2 7 15 0 0 51 4 0 7 19 0 7 7 52 1 6 15 0 56 2 6 7 0 7 58 3 0 30 7 0 30 60 2 6 0 26 0 61 1 0 0 0 62 2 7 15 0 0 63 2 0 15 0 0 64 2 0 15 10 0 49 2 0 0 10 0 11 2 0 0 26 0 27 1 0 0 0 55 1 0 0 0 62 2 0 0 26 0 36 3 0 7 19 0 7 50 4 0 7 19 0 7 7 52 2 0 7 19 0 21 2 0 30 26 0 46 3 0 30 7 0 30 60 2 0 0 8 7 53 3 0 0 10 0 0 29 3 0 0 10 0 0 24 3 0 0 19 0 0 54 1 0 0 7 14 3 0 0 7 0 30 33 3 0 0 0 0 30 35 2 0 44 26 0 45 2 0 0 0 38 43 2 0 0 0 30 37 3 0 0 0 0 30 59 1 0 0 0 57 2 0 15 0 0 64)))))) (QUOTE |lookupComplete|))) +(DEFUN |LSAGG-;sort!;M2A;1| (|f| |l| |$|) + (|LSAGG-;mergeSort| |f| |l| (SPADCALL |l| (QREFELT |$| 9)) |$|)) + +(DEFUN |LSAGG-;list;SA;2| (|x| |$|) + (SPADCALL |x| (SPADCALL (QREFELT |$| 12)) (QREFELT |$| 13))) + +(DEFUN |LSAGG-;reduce;MAS;3| (|f| |x| |$|) + (COND + ((SPADCALL |x| (QREFELT |$| 16)) + (|error| "reducing over an empty list needs the 3 argument form")) + ((QUOTE T) + (SPADCALL |f| + (SPADCALL |x| (QREFELT |$| 17)) + (SPADCALL |x| (QREFELT |$| 18)) + (QREFELT |$| 20))))) + +(DEFUN |LSAGG-;merge;M3A;4| (|f| |p| |q| |$|) + (SPADCALL |f| + (SPADCALL |p| (QREFELT |$| 22)) + (SPADCALL |q| (QREFELT |$| 22)) + (QREFELT |$| 23))) + +(DEFUN |LSAGG-;select!;M2A;5| (|f| |x| |$|) + (PROG (|y| |z|) + (RETURN + (SEQ + (SEQ G190 + (COND + ((NULL + (COND + ((OR + (SPADCALL |x| (QREFELT |$| 16)) + (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) |f|)) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;select!;M2A;5|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT + (COND + ((SPADCALL |x| (QREFELT |$| 16)) |x|) + ((QUOTE T) + (SEQ + (LETT |y| |x| |LSAGG-;select!;M2A;5|) + (LETT |z| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;select!;M2A;5|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |z| (QREFELT |$| 16)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (COND + ((SPADCALL (SPADCALL |z| (QREFELT |$| 18)) |f|) + (SEQ + (LETT |y| |z| |LSAGG-;select!;M2A;5|) + (EXIT + (LETT |z| + (SPADCALL |z| (QREFELT |$| 17)) + |LSAGG-;select!;M2A;5|)))) + ((QUOTE T) + (SEQ + (LETT |z| (SPADCALL |z| (QREFELT |$| 17)) |LSAGG-;select!;M2A;5|) + (EXIT (SPADCALL |y| |z| (QREFELT |$| 25)))))))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |x|))))))))) + +(DEFUN |LSAGG-;merge!;M3A;6| (|f| |p| |q| |$|) + (PROG (|r| |t|) + (RETURN + (SEQ + (COND + ((SPADCALL |p| (QREFELT |$| 16)) |q|) + ((SPADCALL |q| (QREFELT |$| 16)) |p|) + ((SPADCALL |p| |q| (QREFELT |$| 28)) + (|error| "cannot merge a list into itself")) + ((QUOTE T) + (SEQ + (COND + ((SPADCALL + (SPADCALL |p| (QREFELT |$| 18)) + (SPADCALL |q| (QREFELT |$| 18)) + |f|) + (SEQ + (LETT |r| (LETT |t| |p| |LSAGG-;merge!;M3A;6|) |LSAGG-;merge!;M3A;6|) + (EXIT + (LETT |p| (SPADCALL |p| (QREFELT |$| 17)) |LSAGG-;merge!;M3A;6|)))) + ((QUOTE T) + (SEQ + (LETT |r| (LETT |t| |q| |LSAGG-;merge!;M3A;6|) |LSAGG-;merge!;M3A;6|) + (EXIT + (LETT |q| (SPADCALL |q| (QREFELT |$| 17)) |LSAGG-;merge!;M3A;6|))))) + (SEQ + G190 + (COND + ((NULL + (COND + ((OR + (SPADCALL |p| (QREFELT |$| 16)) + (SPADCALL |q| (QREFELT |$| 16))) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (COND + ((SPADCALL + (SPADCALL |p| (QREFELT |$| 18)) + (SPADCALL |q| (QREFELT |$| 18)) + |f|) + (SEQ + (SPADCALL |t| |p| (QREFELT |$| 25)) + (LETT |t| |p| |LSAGG-;merge!;M3A;6|) + (EXIT + (LETT |p| + (SPADCALL |p| (QREFELT |$| 17)) + |LSAGG-;merge!;M3A;6|)))) + ((QUOTE T) + (SEQ + (SPADCALL |t| |q| (QREFELT |$| 25)) + (LETT |t| |q| |LSAGG-;merge!;M3A;6|) + (EXIT + (LETT |q| + (SPADCALL |q| (QREFELT |$| 17)) + |LSAGG-;merge!;M3A;6|))))))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (SPADCALL |t| + (COND + ((SPADCALL |p| (QREFELT |$| 16)) |q|) + ((QUOTE T) |p|)) + (QREFELT |$| 25)) + (EXIT |r|)))))))) + +(DEFUN |LSAGG-;insert!;SAIA;7| (|s| |x| |i| |$|) + (PROG (|m| #1=#:G87547 |y| |z|) + (RETURN + (SEQ + (LETT |m| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;insert!;SAIA;7|) + (EXIT + (COND + ((|<| |i| |m|) (|error| "index out of range")) + ((EQL |i| |m|) (SPADCALL |s| |x| (QREFELT |$| 13))) + ((QUOTE T) + (SEQ + (LETT |y| + (SPADCALL |x| + (PROG1 + (LETT #1# (|-| (|-| |i| 1) |m|) |LSAGG-;insert!;SAIA;7|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 32)) + |LSAGG-;insert!;SAIA;7|) + (LETT |z| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;insert!;SAIA;7|) + (SPADCALL |y| (SPADCALL |s| |z| (QREFELT |$| 13)) (QREFELT |$| 25)) + (EXIT |x|))))))))) + +(DEFUN |LSAGG-;insert!;2AIA;8| (|w| |x| |i| |$|) + (PROG (|m| #1=#:G87551 |y| |z|) + (RETURN + (SEQ + (LETT |m| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;insert!;2AIA;8|) + (EXIT + (COND + ((|<| |i| |m|) (|error| "index out of range")) + ((EQL |i| |m|) (SPADCALL |w| |x| (QREFELT |$| 34))) + ((QUOTE T) + (SEQ + (LETT |y| + (SPADCALL |x| + (PROG1 + (LETT #1# (|-| (|-| |i| 1) |m|) |LSAGG-;insert!;2AIA;8|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 32)) + |LSAGG-;insert!;2AIA;8|) + (LETT |z| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;insert!;2AIA;8|) + (SPADCALL |y| |w| (QREFELT |$| 25)) + (SPADCALL |y| |z| (QREFELT |$| 34)) + (EXIT |x|))))))))) + +(DEFUN |LSAGG-;remove!;M2A;9| (|f| |x| |$|) + (PROG (|p| |q|) + (RETURN + (SEQ + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |x| (QREFELT |$| 16)) (QUOTE NIL)) + ((QUOTE T) (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) |f|)))) + (GO G191))) + (SEQ + (EXIT + (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;remove!;M2A;9|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT + (COND + ((SPADCALL |x| (QREFELT |$| 16)) |x|) + ((QUOTE T) + (SEQ + (LETT |p| |x| |LSAGG-;remove!;M2A;9|) + (LETT |q| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;remove!;M2A;9|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |q| (QREFELT |$| 16)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (COND + ((SPADCALL (SPADCALL |q| (QREFELT |$| 18)) |f|) + (LETT |q| + (SPADCALL |p| (SPADCALL |q| (QREFELT |$| 17)) (QREFELT |$| 25)) + |LSAGG-;remove!;M2A;9|)) + ((QUOTE T) + (SEQ + (LETT |p| |q| |LSAGG-;remove!;M2A;9|) + (EXIT + (LETT |q| + (SPADCALL |q| (QREFELT |$| 17)) + |LSAGG-;remove!;M2A;9|))))))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |x|))))))))) + +(DEFUN |LSAGG-;delete!;AIA;10| (|x| |i| |$|) + (PROG (|m| #1=#:G87564 |y|) + (RETURN + (SEQ + (LETT |m| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;delete!;AIA;10|) + (EXIT + (COND + ((|<| |i| |m|) (|error| "index out of range")) + ((EQL |i| |m|) (SPADCALL |x| (QREFELT |$| 17))) + ((QUOTE T) + (SEQ + (LETT |y| + (SPADCALL |x| + (PROG1 + (LETT #1# (|-| (|-| |i| 1) |m|) |LSAGG-;delete!;AIA;10|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 32)) + |LSAGG-;delete!;AIA;10|) + (SPADCALL |y| (SPADCALL |y| 2 (QREFELT |$| 32)) (QREFELT |$| 25)) + (EXIT |x|))))))))) + +(DEFUN |LSAGG-;delete!;AUsA;11| (|x| |i| |$|) + (PROG (|l| |m| |h| #1=#:G87569 #2=#:G87570 |t| #3=#:G87571) + (RETURN + (SEQ + (LETT |l| (SPADCALL |i| (QREFELT |$| 39)) |LSAGG-;delete!;AUsA;11|) + (LETT |m| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;delete!;AUsA;11|) + (EXIT + (COND + ((|<| |l| |m|) (|error| "index out of range")) + ((QUOTE T) + (SEQ + (LETT |h| + (COND + ((SPADCALL |i| (QREFELT |$| 40)) (SPADCALL |i| (QREFELT |$| 41))) + ((QUOTE T) (SPADCALL |x| (QREFELT |$| 42)))) + |LSAGG-;delete!;AUsA;11|) + (EXIT + (COND + ((|<| |h| |l|) |x|) + ((EQL |l| |m|) + (SPADCALL |x| + (PROG1 + (LETT #1# (|-| (|+| |h| 1) |m|) |LSAGG-;delete!;AUsA;11|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 32))) + ((QUOTE T) + (SEQ + (LETT |t| + (SPADCALL |x| + (PROG1 + (LETT #2# (|-| (|-| |l| 1) |m|) |LSAGG-;delete!;AUsA;11|) + (|check-subtype| (|>=| #2# 0) + (QUOTE (|NonNegativeInteger|)) #2#)) + (QREFELT |$| 32)) + |LSAGG-;delete!;AUsA;11|) + (SPADCALL |t| + (SPADCALL |t| + (PROG1 + (LETT #3# (|+| (|-| |h| |l|) 2) |LSAGG-;delete!;AUsA;11|) + (|check-subtype| (|>=| #3# 0) + (QUOTE (|NonNegativeInteger|)) #3#)) + (QREFELT |$| 32)) + (QREFELT |$| 25)) + (EXIT |x|))))))))))))) + +(DEFUN |LSAGG-;find;MAU;12| (|f| |x| |$|) + (SEQ + (SEQ + G190 + (COND ((NULL (COND ((OR (SPADCALL |x| (QREFELT |$| 16)) (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) |f|)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) + (SEQ (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;find;MAU;12|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT + (COND + ((SPADCALL |x| (QREFELT |$| 16)) (CONS 1 "failed")) + ((QUOTE T) (CONS 0 (SPADCALL |x| (QREFELT |$| 18)))))))) + +(DEFUN |LSAGG-;position;MAI;13| (|f| |x| |$|) + (PROG (|k|) + (RETURN + (SEQ + (SEQ + (LETT |k| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;position;MAI;13|) + G190 + (COND + ((NULL + (COND + ((OR + (SPADCALL |x| (QREFELT |$| 16)) + (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) |f|)) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;position;MAI;13|))) + (LETT |k| (|+| |k| 1) |LSAGG-;position;MAI;13|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT + (COND + ((SPADCALL |x| (QREFELT |$| 16)) (|-| (SPADCALL |x| (QREFELT |$| 31)) 1)) + ((QUOTE T) |k|))))))) + +(DEFUN |LSAGG-;mergeSort| (|f| |p| |n| |$|) + (PROG (#1=#:G87593 |l| |q|) + (RETURN + (SEQ + (COND + ((EQL |n| 2) + (COND + ((SPADCALL + (SPADCALL (SPADCALL |p| (QREFELT |$| 17)) (QREFELT |$| 18)) + (SPADCALL |p| (QREFELT |$| 18)) |f|) + (LETT |p| (SPADCALL |p| (QREFELT |$| 47)) |LSAGG-;mergeSort|))))) + (EXIT + (COND + ((|<| |n| 3) |p|) + ((QUOTE T) + (SEQ + (LETT |l| + (PROG1 + (LETT #1# (QUOTIENT2 |n| 2) |LSAGG-;mergeSort|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + |LSAGG-;mergeSort|) + (LETT |q| (SPADCALL |p| |l| (QREFELT |$| 48)) |LSAGG-;mergeSort|) + (LETT |p| (|LSAGG-;mergeSort| |f| |p| |l| |$|) |LSAGG-;mergeSort|) + (LETT |q| + (|LSAGG-;mergeSort| |f| |q| (|-| |n| |l|) |$|) + |LSAGG-;mergeSort|) + (EXIT (SPADCALL |f| |p| |q| (QREFELT |$| 23))))))))))) + +(DEFUN |LSAGG-;sorted?;MAB;15| (|f| |l| |$|) + (PROG (#1=#:G87603 |p|) + (RETURN + (SEQ + (EXIT + (COND + ((SPADCALL |l| (QREFELT |$| 16)) (QUOTE T)) + ((QUOTE T) + (SEQ + (LETT |p| (SPADCALL |l| (QREFELT |$| 17)) |LSAGG-;sorted?;MAB;15|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |p| (QREFELT |$| 16)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (COND + ((NULL + (SPADCALL + (SPADCALL |l| (QREFELT |$| 18)) + (SPADCALL |p| (QREFELT |$| 18)) + |f|)) + (PROGN (LETT #1# (QUOTE NIL) |LSAGG-;sorted?;MAB;15|) (GO #1#))) + ((QUOTE T) + (LETT |p| + (SPADCALL + (LETT |l| |p| |LSAGG-;sorted?;MAB;15|) + (QREFELT |$| 17)) + |LSAGG-;sorted?;MAB;15|))))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT (QUOTE T)))))) + #1# + (EXIT #1#))))) + +(DEFUN |LSAGG-;reduce;MA2S;16| (|f| |x| |i| |$|) + (PROG (|r|) + (RETURN + (SEQ + (LETT |r| |i| |LSAGG-;reduce;MA2S;16|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |x| (QREFELT |$| 16)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (LETT |r| + (SPADCALL |r| (SPADCALL |x| (QREFELT |$| 18)) |f|) + |LSAGG-;reduce;MA2S;16|) + (EXIT + (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;reduce;MA2S;16|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |r|))))) + +(DEFUN |LSAGG-;reduce;MA3S;17| (|f| |x| |i| |a| |$|) + (PROG (|r|) + (RETURN + (SEQ + (LETT |r| |i| |LSAGG-;reduce;MA3S;17|) + (SEQ + G190 + (COND + ((NULL + (COND + ((OR + (SPADCALL |x| (QREFELT |$| 16)) + (SPADCALL |r| |a| (QREFELT |$| 51))) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) (GO G191))) + (SEQ + (LETT |r| + (SPADCALL |r| (SPADCALL |x| (QREFELT |$| 18)) |f|) + |LSAGG-;reduce;MA3S;17|) + (EXIT + (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;reduce;MA3S;17|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |r|))))) + +(DEFUN |LSAGG-;new;NniSA;18| (|n| |s| |$|) + (PROG (|k| |l|) + (RETURN + (SEQ + (LETT |l| (SPADCALL (QREFELT |$| 12)) |LSAGG-;new;NniSA;18|) + (SEQ + (LETT |k| 1 |LSAGG-;new;NniSA;18|) + G190 + (COND ((QSGREATERP |k| |n|) (GO G191))) + (SEQ + (EXIT + (LETT |l| (SPADCALL |s| |l| (QREFELT |$| 13)) |LSAGG-;new;NniSA;18|))) + (LETT |k| (QSADD1 |k|) |LSAGG-;new;NniSA;18|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT |l|))))) + +(DEFUN |LSAGG-;map;M3A;19| (|f| |x| |y| |$|) + (PROG (|z|) + (RETURN + (SEQ + (LETT |z| (SPADCALL (QREFELT |$| 12)) |LSAGG-;map;M3A;19|) + (SEQ + G190 + (COND + ((NULL + (COND + ((OR (SPADCALL |x| (QREFELT |$| 16)) (SPADCALL |y| (QREFELT |$| 16))) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (LETT |z| + (SPADCALL + (SPADCALL + (SPADCALL |x| (QREFELT |$| 18)) + (SPADCALL |y| (QREFELT |$| 18)) + |f|) + |z| + (QREFELT |$| 13)) + |LSAGG-;map;M3A;19|) + (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;map;M3A;19|) + (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;map;M3A;19|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT (SPADCALL |z| (QREFELT |$| 47))))))) + +(DEFUN |LSAGG-;reverse!;2A;20| (|x| |$|) + (PROG (|z| |y|) + (RETURN + (SEQ + (COND + ((OR + (SPADCALL |x| (QREFELT |$| 16)) + (SPADCALL + (LETT |y| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;reverse!;2A;20|) + (QREFELT |$| 16))) + |x|) + ((QUOTE T) + (SEQ + (SPADCALL |x| (SPADCALL (QREFELT |$| 12)) (QREFELT |$| 25)) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |y| (QREFELT |$| 16)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (LETT |z| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;reverse!;2A;20|) + (SPADCALL |y| |x| (QREFELT |$| 25)) + (LETT |x| |y| |LSAGG-;reverse!;2A;20|) + (EXIT (LETT |y| |z| |LSAGG-;reverse!;2A;20|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |x|)))))))) + +(DEFUN |LSAGG-;copy;2A;21| (|x| |$|) + (PROG (|k| |y|) + (RETURN + (SEQ + (LETT |y| (SPADCALL (QREFELT |$| 12)) |LSAGG-;copy;2A;21|) + (SEQ + (LETT |k| 0 |LSAGG-;copy;2A;21|) + G190 + (COND + ((NULL + (COND + ((SPADCALL |x| (QREFELT |$| 16)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (COND + ((EQL |k| 1000) + (COND + ((SPADCALL |x| (QREFELT |$| 56)) (EXIT (|error| "cyclic list")))))) + (LETT |y| + (SPADCALL (SPADCALL |x| (QREFELT |$| 18)) |y| (QREFELT |$| 13)) + |LSAGG-;copy;2A;21|) + (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;copy;2A;21|))) + (LETT |k| (QSADD1 |k|) |LSAGG-;copy;2A;21|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT (SPADCALL |y| (QREFELT |$| 47))))))) + +(DEFUN |LSAGG-;copyInto!;2AIA;22| (|y| |x| |s| |$|) + (PROG (|m| #1=#:G87636 |z|) + (RETURN + (SEQ + (LETT |m| (SPADCALL |y| (QREFELT |$| 31)) |LSAGG-;copyInto!;2AIA;22|) + (EXIT + (COND + ((|<| |s| |m|) (|error| "index out of range")) + ((QUOTE T) + (SEQ + (LETT |z| + (SPADCALL |y| + (PROG1 + (LETT #1# (|-| |s| |m|) |LSAGG-;copyInto!;2AIA;22|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 32)) + |LSAGG-;copyInto!;2AIA;22|) + (SEQ + G190 + (COND + ((NULL + (COND + ((OR + (SPADCALL |z| (QREFELT |$| 16)) + (SPADCALL |x| (QREFELT |$| 16))) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (SPADCALL |z| (SPADCALL |x| (QREFELT |$| 18)) (QREFELT |$| 58)) + (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;copyInto!;2AIA;22|) + (EXIT + (LETT |z| + (SPADCALL |z| (QREFELT |$| 17)) + |LSAGG-;copyInto!;2AIA;22|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |y|))))))))) + +(DEFUN |LSAGG-;position;SA2I;23| (|w| |x| |s| |$|) + (PROG (|m| #1=#:G87644 |k|) + (RETURN + (SEQ + (LETT |m| (SPADCALL |x| (QREFELT |$| 31)) |LSAGG-;position;SA2I;23|) + (EXIT + (COND + ((|<| |s| |m|) (|error| "index out of range")) + ((QUOTE T) + (SEQ + (LETT |x| + (SPADCALL |x| + (PROG1 + (LETT #1# (|-| |s| |m|) |LSAGG-;position;SA2I;23|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 32)) + |LSAGG-;position;SA2I;23|) + (SEQ + (LETT |k| |s| |LSAGG-;position;SA2I;23|) + G190 + (COND + ((NULL + (COND + ((OR + (SPADCALL |x| (QREFELT |$| 16)) + (SPADCALL |w| (SPADCALL |x| (QREFELT |$| 18)) (QREFELT |$| 51))) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (LETT |x| + (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;position;SA2I;23|))) + (LETT |k| (|+| |k| 1) |LSAGG-;position;SA2I;23|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT + (COND + ((SPADCALL |x| (QREFELT |$| 16)) + (|-| (SPADCALL |x| (QREFELT |$| 31)) 1)) + ((QUOTE T) |k|))))))))))) + +(DEFUN |LSAGG-;removeDuplicates!;2A;24| (|l| |$|) + (PROG (|p|) + (RETURN + (SEQ + (LETT |p| |l| |LSAGG-;removeDuplicates!;2A;24|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |p| (QREFELT |$| 16)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (LETT |p| + (SPADCALL |p| + (SPADCALL + (CONS + (FUNCTION |LSAGG-;removeDuplicates!;2A;24!0|) + (VECTOR |$| |p|)) + (SPADCALL |p| (QREFELT |$| 17)) + (QREFELT |$| 61)) + (QREFELT |$| 25)) + |LSAGG-;removeDuplicates!;2A;24|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |l|))))) + +(DEFUN |LSAGG-;removeDuplicates!;2A;24!0| (|#1| |$$|) + (PROG (|$|) + (LETT |$| (QREFELT |$$| 0) |LSAGG-;removeDuplicates!;2A;24|) + (RETURN + (PROGN + (SPADCALL |#1| + (SPADCALL (QREFELT |$$| 1) (QREFELT |$| 18)) + (QREFELT |$| 51)))))) + +(DEFUN |LSAGG-;<;2AB;25| (|x| |y| |$|) + (PROG (#1=#:G87662) + (RETURN + (SEQ + (EXIT + (SEQ + (SEQ + G190 + (COND + ((NULL + (COND + ((OR + (SPADCALL |x| (QREFELT |$| 16)) + (SPADCALL |y| (QREFELT |$| 16))) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (COND + ((NULL + (SPADCALL + (SPADCALL |x| (QREFELT |$| 18)) + (SPADCALL |y| (QREFELT |$| 18)) + (QREFELT |$| 51))) + (PROGN + (LETT #1# + (SPADCALL + (SPADCALL |x| (QREFELT |$| 18)) + (SPADCALL |y| (QREFELT |$| 18)) + (QREFELT |$| 63)) + |LSAGG-;<;2AB;25|) + (GO #1#))) + ((QUOTE T) + (SEQ + (LETT |x| (SPADCALL |x| (QREFELT |$| 17)) |LSAGG-;<;2AB;25|) + (EXIT + (LETT |y| (SPADCALL |y| (QREFELT |$| 17)) |LSAGG-;<;2AB;25|))))))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT + (COND + ((SPADCALL |x| (QREFELT |$| 16)) + (COND + ((SPADCALL |y| (QREFELT |$| 16)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + ((QUOTE T) (QUOTE NIL)))))) + #1# + (EXIT #1#))))) + +(DEFUN |ListAggregate&| (|#1| |#2|) + (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|ListAggregate&|)) + (LETT |DV$2| (|devaluate| |#2|) . #1#) + (LETT |dv$| (LIST (QUOTE |ListAggregate&|) |DV$1| |DV$2|) . #1#) + (LETT |$| (GETREFV 66) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + (QSETREFV |$| 7 |#2|) + (COND + ((|HasCategory| |#2| (QUOTE (|SetCategory|))) + (QSETREFV |$| 52 + (CONS (|dispatchFunction| |LSAGG-;reduce;MA3S;17|) |$|)))) + (COND + ((|HasCategory| |#2| (QUOTE (|SetCategory|))) + (PROGN + (QSETREFV |$| 60 + (CONS (|dispatchFunction| |LSAGG-;position;SA2I;23|) |$|)) + (QSETREFV |$| 62 + (CONS (|dispatchFunction| |LSAGG-;removeDuplicates!;2A;24|) |$|))))) + (COND + ((|HasCategory| |#2| (QUOTE (|OrderedSet|))) + (QSETREFV |$| 64 (CONS (|dispatchFunction| |LSAGG-;<;2AB;25|) |$|)))) + |$|)))) + +(MAKEPROP + (QUOTE |ListAggregate&|) + (QUOTE |infovec|) + (LIST + (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) + (|NonNegativeInteger|) (0 . |#|) (|Mapping| 15 7 7) |LSAGG-;sort!;M2A;1| + (5 . |empty|) (9 . |concat|) |LSAGG-;list;SA;2| (|Boolean|) + (15 . |empty?|) (20 . |rest|) (25 . |first|) (|Mapping| 7 7 7) + (30 . |reduce|) |LSAGG-;reduce;MAS;3| (37 . |copy|) (42 . |merge!|) + |LSAGG-;merge;M3A;4| (49 . |setrest!|) (|Mapping| 15 7) + |LSAGG-;select!;M2A;5| (55 . |eq?|) |LSAGG-;merge!;M3A;6| + (|Integer|) (61 . |minIndex|) (66 . |rest|) |LSAGG-;insert!;SAIA;7| + (72 . |concat!|) |LSAGG-;insert!;2AIA;8| |LSAGG-;remove!;M2A;9| + |LSAGG-;delete!;AIA;10| (|UniversalSegment| 30) (78 . |lo|) + (83 . |hasHi|) (88 . |hi|) (93 . |maxIndex|) |LSAGG-;delete!;AUsA;11| + (|Union| 7 (QUOTE "failed")) |LSAGG-;find;MAU;12| + |LSAGG-;position;MAI;13| (98 . |reverse!|) (103 . |split!|) + |LSAGG-;sorted?;MAB;15| |LSAGG-;reduce;MA2S;16| (109 . |=|) + (115 . |reduce|) |LSAGG-;new;NniSA;18| |LSAGG-;map;M3A;19| + |LSAGG-;reverse!;2A;20| (123 . |cyclic?|) |LSAGG-;copy;2A;21| + (128 . |setfirst!|) |LSAGG-;copyInto!;2AIA;22| (134 . |position|) + (141 . |remove!|) (147 . |removeDuplicates!|) (152 . |<|) (158 . |<|) + (|Mapping| 7 7))) + (QUOTE #(|sorted?| 164 |sort!| 170 |select!| 176 |reverse!| 182 + |removeDuplicates!| 187 |remove!| 192 |reduce| 198 |position| 219 + |new| 232 |merge!| 238 |merge| 245 |map| 252 |list| 259 |insert!| + 264 |find| 278 |delete!| 284 |copyInto!| 296 |copy| 303 |<| 308)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS + (QUOTE #()) + (CONS + (QUOTE #()) + (|makeByteWordVec2| 64 (QUOTE (1 6 8 0 9 0 6 0 12 2 6 0 7 0 13 1 6 + 15 0 16 1 6 0 0 17 1 6 7 0 18 3 6 7 19 0 7 20 1 6 0 0 22 3 6 0 10 + 0 0 23 2 6 0 0 0 25 2 6 15 0 0 28 1 6 30 0 31 2 6 0 0 8 32 2 6 0 0 + 0 34 1 38 30 0 39 1 38 15 0 40 1 38 30 0 41 1 6 30 0 42 1 6 0 0 47 + 2 6 0 0 30 48 2 7 15 0 0 51 4 0 7 19 0 7 7 52 1 6 15 0 56 2 6 7 0 + 7 58 3 0 30 7 0 30 60 2 6 0 26 0 61 1 0 0 0 62 2 7 15 0 0 63 2 0 15 + 0 0 64 2 0 15 10 0 49 2 0 0 10 0 11 2 0 0 26 0 27 1 0 0 0 55 1 0 0 + 0 62 2 0 0 26 0 36 3 0 7 19 0 7 50 4 0 7 19 0 7 7 52 2 0 7 19 0 21 + 2 0 30 26 0 46 3 0 30 7 0 30 60 2 0 0 8 7 53 3 0 0 10 0 0 29 3 0 0 + 10 0 0 24 3 0 0 19 0 0 54 1 0 0 7 14 3 0 0 7 0 30 33 3 0 0 0 0 30 + 35 2 0 44 26 0 45 2 0 0 0 38 43 2 0 0 0 30 37 3 0 0 0 0 30 59 1 0 + 0 0 57 2 0 15 0 0 64)))))) + (QUOTE |lookupComplete|))) @ \section{category MDAGG MultiDictionary} <>= @@ -4613,9 +6035,55 @@ Note that this code is not included in the generated catdef.spad file. (SETQ |RecursiveAggregate;AL| (QUOTE NIL)) -(DEFUN |RecursiveAggregate| (#1=#:G84501) (LET (#2=#:G84502) (COND ((SETQ #2# (|assoc| (|devaluate| #1#) |RecursiveAggregate;AL|)) (CDR #2#)) (T (SETQ |RecursiveAggregate;AL| (|cons5| (CONS (|devaluate| #1#) (SETQ #2# (|RecursiveAggregate;| #1#))) |RecursiveAggregate;AL|)) #2#)))) - -(DEFUN |RecursiveAggregate;| (|t#1|) (PROG (#1=#:G84500) (RETURN (PROG1 (LETT #1# (|sublisV| (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) (COND (|RecursiveAggregate;CAT|) ((QUOTE T) (LETT |RecursiveAggregate;CAT| (|Join| (|HomogeneousAggregate| (QUOTE |t#1|)) (|mkCategory| (QUOTE |domain|) (QUOTE (((|children| ((|List| |$|) |$|)) T) ((|nodes| ((|List| |$|) |$|)) T) ((|leaf?| ((|Boolean|) |$|)) T) ((|value| (|t#1| |$|)) T) ((|elt| (|t#1| |$| "value")) T) ((|cyclic?| ((|Boolean|) |$|)) T) ((|leaves| ((|List| |t#1|) |$|)) T) ((|distance| ((|Integer|) |$| |$|)) T) ((|child?| ((|Boolean|) |$| |$|)) (|has| |t#1| (|SetCategory|))) ((|node?| ((|Boolean|) |$| |$|)) (|has| |t#1| (|SetCategory|))) ((|setchildren!| (|$| |$| (|List| |$|))) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|setelt| (|t#1| |$| "value" |t#1|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|setvalue!| (|t#1| |$| |t#1|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))))) NIL (QUOTE ((|List| |$|) (|Boolean|) (|Integer|) (|List| |t#1|))) NIL)) . #2=(|RecursiveAggregate|))))) . #2#) (SETELT #1# 0 (LIST (QUOTE |RecursiveAggregate|) (|devaluate| |t#1|))))))) +(DEFUN |RecursiveAggregate| (#1=#:G84501) + (LET (#2=#:G84502) + (COND + ((SETQ #2# (|assoc| (|devaluate| #1#) |RecursiveAggregate;AL|)) (CDR #2#)) + (T + (SETQ |RecursiveAggregate;AL| + (|cons5| + (CONS (|devaluate| #1#) (SETQ #2# (|RecursiveAggregate;| #1#))) + |RecursiveAggregate;AL|)) + #2#)))) + +(DEFUN |RecursiveAggregate;| (|t#1|) + (PROG (#1=#:G84500) + (RETURN + (PROG1 + (LETT #1# + (|sublisV| + (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) + (COND + (|RecursiveAggregate;CAT|) + ((QUOTE T) + (LETT |RecursiveAggregate;CAT| + (|Join| + (|HomogeneousAggregate| (QUOTE |t#1|)) + (|mkCategory| + (QUOTE |domain|) + (QUOTE ( + ((|children| ((|List| |$|) |$|)) T) + ((|nodes| ((|List| |$|) |$|)) T) + ((|leaf?| ((|Boolean|) |$|)) T) + ((|value| (|t#1| |$|)) T) + ((|elt| (|t#1| |$| "value")) T) + ((|cyclic?| ((|Boolean|) |$|)) T) + ((|leaves| ((|List| |t#1|) |$|)) T) + ((|distance| ((|Integer|) |$| |$|)) T) + ((|child?| ((|Boolean|) |$| |$|)) (|has| |t#1| (|SetCategory|))) + ((|node?| ((|Boolean|) |$| |$|)) (|has| |t#1| (|SetCategory|))) + ((|setchildren!| (|$| |$| (|List| |$|))) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|setelt| (|t#1| |$| "value" |t#1|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|setvalue!| (|t#1| |$| |t#1|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))))) + NIL + (QUOTE ((|List| |$|) (|Boolean|) (|Integer|) (|List| |t#1|))) + NIL)) + . #2=(|RecursiveAggregate|))))) + . #2#) + (SETELT #1# 0 (LIST (QUOTE |RecursiveAggregate|) (|devaluate| |t#1|))))))) @ \section{RCAGG-.lsp BOOTSTRAP} {\bf RCAGG-} depends on {\bf RCAGG}. We need to break this cycle to build @@ -4630,15 +6098,62 @@ Note that this code is not included in the generated catdef.spad file. (|/VERSIONCHECK| 2) -(DEFUN |RCAGG-;elt;AvalueS;1| (|x| G84515 |$|) (SPADCALL |x| (QREFELT |$| 8))) - -(DEFUN |RCAGG-;setelt;Avalue2S;2| (|x| G84517 |y| |$|) (SPADCALL |x| |y| (QREFELT |$| 11))) - -(DEFUN |RCAGG-;child?;2AB;3| (|x| |l| |$|) (SPADCALL |x| (SPADCALL |l| (QREFELT |$| 14)) (QREFELT |$| 17))) - -(DEFUN |RecursiveAggregate&| (|#1| |#2|) (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) (RETURN (PROGN (LETT |DV$1| (|devaluate| |#1|) . #1=(|RecursiveAggregate&|)) (LETT |DV$2| (|devaluate| |#2|) . #1#) (LETT |dv$| (LIST (QUOTE |RecursiveAggregate&|) |DV$1| |DV$2|) . #1#) (LETT |$| (GETREFV 19) . #1#) (QSETREFV |$| 0 |dv$|) (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 (LIST (|HasAttribute| |#1| (QUOTE |shallowlyMutable|)) (|HasCategory| |#2| (QUOTE (|SetCategory|))))) . #1#)) (|stuffDomainSlots| |$|) (QSETREFV |$| 6 |#1|) (QSETREFV |$| 7 |#2|) (COND ((|testBitVector| |pv$| 1) (QSETREFV |$| 12 (CONS (|dispatchFunction| |RCAGG-;setelt;Avalue2S;2|) |$|)))) (COND ((|testBitVector| |pv$| 2) (QSETREFV |$| 18 (CONS (|dispatchFunction| |RCAGG-;child?;2AB;3|) |$|)))) |$|)))) - -(MAKEPROP (QUOTE |RecursiveAggregate&|) (QUOTE |infovec|) (LIST (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (0 . |value|) (QUOTE "value") |RCAGG-;elt;AvalueS;1| (5 . |setvalue!|) (11 . |setelt|) (|List| |$|) (18 . |children|) (|Boolean|) (|List| 6) (23 . |member?|) (29 . |child?|))) (QUOTE #(|setelt| 35 |elt| 42 |child?| 48)) (QUOTE NIL) (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) (CONS (QUOTE #()) (CONS (QUOTE #()) (|makeByteWordVec2| 18 (QUOTE (1 6 7 0 8 2 6 7 0 7 11 3 0 7 0 9 7 12 1 6 13 0 14 2 16 15 6 0 17 2 0 15 0 0 18 3 0 7 0 9 7 12 2 0 7 0 9 10 2 0 15 0 0 18)))))) (QUOTE |lookupComplete|))) +(DEFUN |RCAGG-;elt;AvalueS;1| (|x| G84515 |$|) + (SPADCALL |x| (QREFELT |$| 8))) + +(DEFUN |RCAGG-;setelt;Avalue2S;2| (|x| G84517 |y| |$|) + (SPADCALL |x| |y| (QREFELT |$| 11))) + +(DEFUN |RCAGG-;child?;2AB;3| (|x| |l| |$|) + (SPADCALL |x| (SPADCALL |l| (QREFELT |$| 14)) (QREFELT |$| 17))) + +(DEFUN |RecursiveAggregate&| (|#1| |#2|) + (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|RecursiveAggregate&|)) + (LETT |DV$2| (|devaluate| |#2|) . #1#) + (LETT |dv$| (LIST (QUOTE |RecursiveAggregate&|) |DV$1| |DV$2|) . #1#) + (LETT |$| (GETREFV 19) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 + (LETT |pv$| + (|buildPredVector| 0 0 + (LIST + (|HasAttribute| |#1| (QUOTE |shallowlyMutable|)) + (|HasCategory| |#2| (QUOTE (|SetCategory|))))) + . #1#)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + (QSETREFV |$| 7 |#2|) + (COND + ((|testBitVector| |pv$| 1) + (QSETREFV |$| 12 + (CONS (|dispatchFunction| |RCAGG-;setelt;Avalue2S;2|) |$|)))) + (COND + ((|testBitVector| |pv$| 2) + (QSETREFV |$| 18 (CONS (|dispatchFunction| |RCAGG-;child?;2AB;3|) |$|)))) + |$|)))) + +(MAKEPROP + (QUOTE |RecursiveAggregate&|) + (QUOTE |infovec|) + (LIST + (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) + (0 . |value|) (QUOTE "value") |RCAGG-;elt;AvalueS;1| (5 . |setvalue!|) + (11 . |setelt|) (|List| |$|) (18 . |children|) (|Boolean|) (|List| 6) + (23 . |member?|) (29 . |child?|))) + (QUOTE #(|setelt| 35 |elt| 42 |child?| 48)) + (QUOTE NIL) + (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS + (QUOTE #()) + (CONS + (QUOTE #()) + (|makeByteWordVec2| 18 (QUOTE (1 6 7 0 8 2 6 7 0 7 11 3 0 7 0 9 7 12 + 1 6 13 0 14 2 16 15 6 0 17 2 0 15 0 0 18 3 0 7 0 9 7 12 2 0 7 0 9 + 10 2 0 15 0 0 18)))))) + (QUOTE |lookupComplete|))) @ \section{category SETAGG SetAggregate} <>= @@ -4698,7 +6213,8 @@ SetAggregate(S:SetCategory): ++ are members of set aggregate u or set aggregate v but not both. ++ If u and v have no elements in common, \axiom{symmetricDifference(u,v)} ++ returns a copy of u. - ++ Note: \axiom{symmetricDifference(u,v) = union(difference(u,v),difference(v,u))} + ++ Note: \axiom{symmetricDifference(u,v) = + ++ union(difference(u,v),difference(v,u))} subset? : (%, %) -> Boolean ++ subset?(u,v) tests if u is a subset of v. ++ Note: equivalent to @@ -4749,9 +6265,53 @@ Note that this code is not included in the generated catdef.spad file. (SETQ |SetAggregate;AL| (QUOTE NIL)) -(DEFUN |SetAggregate| (#1=#:G83200) (LET (#2=#:G83201) (COND ((SETQ #2# (|assoc| (|devaluate| #1#) |SetAggregate;AL|)) (CDR #2#)) (T (SETQ |SetAggregate;AL| (|cons5| (CONS (|devaluate| #1#) (SETQ #2# (|SetAggregate;| #1#))) |SetAggregate;AL|)) #2#)))) - -(DEFUN |SetAggregate;| (|t#1|) (PROG (#1=#:G83199) (RETURN (PROG1 (LETT #1# (|sublisV| (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) (COND (|SetAggregate;CAT|) ((QUOTE T) (LETT |SetAggregate;CAT| (|Join| (|SetCategory|) (|Collection| (QUOTE |t#1|)) (|mkCategory| (QUOTE |domain|) (QUOTE (((|<| ((|Boolean|) |$| |$|)) T) ((|brace| (|$|)) T) ((|brace| (|$| (|List| |t#1|))) T) ((|set| (|$|)) T) ((|set| (|$| (|List| |t#1|))) T) ((|intersect| (|$| |$| |$|)) T) ((|difference| (|$| |$| |$|)) T) ((|difference| (|$| |$| |t#1|)) T) ((|symmetricDifference| (|$| |$| |$|)) T) ((|subset?| ((|Boolean|) |$| |$|)) T) ((|union| (|$| |$| |$|)) T) ((|union| (|$| |$| |t#1|)) T) ((|union| (|$| |t#1| |$|)) T))) (QUOTE ((|partiallyOrderedSet| T))) (QUOTE ((|Boolean|) (|List| |t#1|))) NIL)) . #2=(|SetAggregate|))))) . #2#) (SETELT #1# 0 (LIST (QUOTE |SetAggregate|) (|devaluate| |t#1|))))))) +(DEFUN |SetAggregate| (#1=#:G83200) + (LET (#2=#:G83201) + (COND + ((SETQ #2# (|assoc| (|devaluate| #1#) |SetAggregate;AL|)) (CDR #2#)) + (T + (SETQ |SetAggregate;AL| + (|cons5| + (CONS (|devaluate| #1#) (SETQ #2# (|SetAggregate;| #1#))) + |SetAggregate;AL|)) + #2#)))) + +(DEFUN |SetAggregate;| (|t#1|) + (PROG (#1=#:G83199) + (RETURN + (PROG1 + (LETT #1# + (|sublisV| + (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) + (COND + (|SetAggregate;CAT|) + ((QUOTE T) + (LETT |SetAggregate;CAT| + (|Join| + (|SetCategory|) + (|Collection| (QUOTE |t#1|)) + (|mkCategory| + (QUOTE |domain|) + (QUOTE ( + ((|<| ((|Boolean|) |$| |$|)) T) + ((|brace| (|$|)) T) + ((|brace| (|$| (|List| |t#1|))) T) + ((|set| (|$|)) T) + ((|set| (|$| (|List| |t#1|))) T) + ((|intersect| (|$| |$| |$|)) T) + ((|difference| (|$| |$| |$|)) T) + ((|difference| (|$| |$| |t#1|)) T) + ((|symmetricDifference| (|$| |$| |$|)) T) + ((|subset?| ((|Boolean|) |$| |$|)) T) + ((|union| (|$| |$| |$|)) T) + ((|union| (|$| |$| |t#1|)) T) + ((|union| (|$| |t#1| |$|)) T))) + (QUOTE ((|partiallyOrderedSet| T))) + (QUOTE ((|Boolean|) (|List| |t#1|))) + NIL)) + . #2=(|SetAggregate|))))) + . #2#) + (SETELT #1# 0 (LIST (QUOTE |SetAggregate|) (|devaluate| |t#1|))))))) @ \section{SETAGG-.lsp BOOTSTRAP} {\bf SETAGG-} depends on {\bf SETAGG}. We need to break this cycle to build @@ -4766,17 +6326,55 @@ Note that this code is not included in the generated catdef.spad file. (|/VERSIONCHECK| 2) -(DEFUN |SETAGG-;symmetricDifference;3A;1| (|x| |y| |$|) (SPADCALL (SPADCALL |x| |y| (QREFELT |$| 8)) (SPADCALL |y| |x| (QREFELT |$| 8)) (QREFELT |$| 9))) - -(DEFUN |SETAGG-;union;ASA;2| (|s| |x| |$|) (SPADCALL |s| (SPADCALL (LIST |x|) (QREFELT |$| 12)) (QREFELT |$| 9))) - -(DEFUN |SETAGG-;union;S2A;3| (|x| |s| |$|) (SPADCALL |s| (SPADCALL (LIST |x|) (QREFELT |$| 12)) (QREFELT |$| 9))) - -(DEFUN |SETAGG-;difference;ASA;4| (|s| |x| |$|) (SPADCALL |s| (SPADCALL (LIST |x|) (QREFELT |$| 12)) (QREFELT |$| 8))) - -(DEFUN |SetAggregate&| (|#1| |#2|) (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) (RETURN (PROGN (LETT |DV$1| (|devaluate| |#1|) . #1=(|SetAggregate&|)) (LETT |DV$2| (|devaluate| |#2|) . #1#) (LETT |dv$| (LIST (QUOTE |SetAggregate&|) |DV$1| |DV$2|) . #1#) (LETT |$| (GETREFV 16) . #1#) (QSETREFV |$| 0 |dv$|) (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) (|stuffDomainSlots| |$|) (QSETREFV |$| 6 |#1|) (QSETREFV |$| 7 |#2|) |$|)))) - -(MAKEPROP (QUOTE |SetAggregate&|) (QUOTE |infovec|) (LIST (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (0 . |difference|) (6 . |union|) |SETAGG-;symmetricDifference;3A;1| (|List| 7) (12 . |brace|) |SETAGG-;union;ASA;2| |SETAGG-;union;S2A;3| |SETAGG-;difference;ASA;4|)) (QUOTE #(|union| 17 |symmetricDifference| 29 |difference| 35)) (QUOTE NIL) (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) (CONS (QUOTE #()) (CONS (QUOTE #()) (|makeByteWordVec2| 15 (QUOTE (2 6 0 0 0 8 2 6 0 0 0 9 1 6 0 11 12 2 0 0 7 0 14 2 0 0 0 7 13 2 0 0 0 0 10 2 0 0 0 7 15)))))) (QUOTE |lookupComplete|))) +(DEFUN |SETAGG-;symmetricDifference;3A;1| (|x| |y| |$|) + (SPADCALL + (SPADCALL |x| |y| (QREFELT |$| 8)) + (SPADCALL |y| |x| (QREFELT |$| 8)) + (QREFELT |$| 9))) + +(DEFUN |SETAGG-;union;ASA;2| (|s| |x| |$|) + (SPADCALL |s| (SPADCALL (LIST |x|) (QREFELT |$| 12)) (QREFELT |$| 9))) + +(DEFUN |SETAGG-;union;S2A;3| (|x| |s| |$|) + (SPADCALL |s| (SPADCALL (LIST |x|) (QREFELT |$| 12)) (QREFELT |$| 9))) + +(DEFUN |SETAGG-;difference;ASA;4| (|s| |x| |$|) + (SPADCALL |s| (SPADCALL (LIST |x|) (QREFELT |$| 12)) (QREFELT |$| 8))) + +(DEFUN |SetAggregate&| (|#1| |#2|) + (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|SetAggregate&|)) + (LETT |DV$2| (|devaluate| |#2|) . #1#) + (LETT |dv$| (LIST (QUOTE |SetAggregate&|) |DV$1| |DV$2|) . #1#) + (LETT |$| (GETREFV 16) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + (QSETREFV |$| 7 |#2|) + |$|)))) + +(MAKEPROP + (QUOTE |SetAggregate&|) + (QUOTE |infovec|) + (LIST + (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) + (0 . |difference|) (6 . |union|) |SETAGG-;symmetricDifference;3A;1| + (|List| 7) (12 . |brace|) |SETAGG-;union;ASA;2| |SETAGG-;union;S2A;3| + |SETAGG-;difference;ASA;4|)) + (QUOTE #(|union| 17 |symmetricDifference| 29 |difference| 35)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS + (QUOTE #()) + (CONS + (QUOTE #()) + (|makeByteWordVec2| 15 (QUOTE (2 6 0 0 0 8 2 6 0 0 0 9 1 6 0 11 12 2 + 0 0 7 0 14 2 0 0 0 7 13 2 0 0 0 0 10 2 0 0 0 7 15)))))) + (QUOTE |lookupComplete|))) @ \section{category SKAGG StackAggregate} <>= @@ -4854,10 +6452,12 @@ StringAggregate: Category == OneDimensionalArrayAggregate Character with ++ in s by upper case characters. prefix? : (%, %) -> Boolean ++ prefix?(s,t) tests if the string s is the initial substring of t. - ++ Note: \axiom{prefix?(s,t) == reduce(and,[s.i = t.i for i in 0..maxIndex s])}. + ++ Note: \axiom{prefix?(s,t) == + ++ reduce(and,[s.i = t.i for i in 0..maxIndex s])}. suffix? : (%, %) -> Boolean ++ suffix?(s,t) tests if the string s is the final substring of t. - ++ Note: \axiom{suffix?(s,t) == reduce(and,[s.i = t.(n - m + i) for i in 0..maxIndex s])} + ++ Note: \axiom{suffix?(s,t) == + ++ reduce(and,[s.i = t.(n - m + i) for i in 0..maxIndex s])} ++ where m and n denote the maxIndex of s and t respectively. substring?: (%, %, Integer) -> Boolean ++ substring?(s,t,i) tests if s is a substring of t beginning at @@ -4877,7 +6477,8 @@ StringAggregate: Category == OneDimensionalArrayAggregate Character with ++ multiple and consecutive occurrences of character c. ++ Typically c is the blank character. replace : (%, UniversalSegment(Integer), %) -> % - ++ replace(s,i..j,t) replaces the substring \axiom{s(i..j)} of s by string t. + ++ replace(s,i..j,t) replaces the substring \axiom{s(i..j)} + ++ of s by string t. position : (%, %, Integer) -> Integer ++ position(s,t,i) returns the position j of the substring s in string t, ++ where \axiom{j >= i} is required. @@ -4890,7 +6491,8 @@ StringAggregate: Category == OneDimensionalArrayAggregate Character with split: (%, Character) -> List % ++ split(s,c) returns a list of substrings delimited by character c. split: (%, CharacterClass) -> List % - ++ split(s,cc) returns a list of substrings delimited by characters in cc. + ++ split(s,cc) returns a list of substrings delimited by + ++ characters in cc. trim: (%, Character) -> % ++ trim(s,c) returns s with all characters c deleted from right @@ -4899,20 +6501,25 @@ StringAggregate: Category == OneDimensionalArrayAggregate Character with trim: (%, CharacterClass) -> % ++ trim(s,cc) returns s with all characters in cc deleted from right ++ and left ends. - ++ For example, \axiom{trim("(abc)", charClass "()")} returns \axiom{"abc"}. + ++ For example, \axiom{trim("(abc)", charClass "()")} + ++ returns \axiom{"abc"}. leftTrim: (%, Character) -> % ++ leftTrim(s,c) returns s with all leading characters c deleted. - ++ For example, \axiom{leftTrim(" abc ", char " ")} returns \axiom{"abc "}. + ++ For example, \axiom{leftTrim(" abc ", char " ")} + ++ returns \axiom{"abc "}. leftTrim: (%, CharacterClass) -> % ++ leftTrim(s,cc) returns s with all leading characters in cc deleted. - ++ For example, \axiom{leftTrim("(abc)", charClass "()")} returns \axiom{"abc)"}. + ++ For example, \axiom{leftTrim("(abc)", charClass "()")} + ++ returns \axiom{"abc)"}. rightTrim: (%, Character) -> % ++ rightTrim(s,c) returns s with all trailing occurrences of c deleted. - ++ For example, \axiom{rightTrim(" abc ", char " ")} returns \axiom{" abc"}. + ++ For example, \axiom{rightTrim(" abc ", char " ")} + ++ returns \axiom{" abc"}. rightTrim: (%, CharacterClass) -> % ++ rightTrim(s,cc) returns s with all trailing occurences of ++ characters in cc deleted. - ++ For example, \axiom{rightTrim("(abc)", charClass "()")} returns \axiom{"(abc"}. + ++ For example, \axiom{rightTrim("(abc)", charClass "()")} + ++ returns \axiom{"(abc"}. elt: (%, %) -> % ++ elt(s,t) returns the concatenation of s and t. It is provided to ++ allow juxtaposition of strings to work as concatenation. @@ -4962,11 +6569,13 @@ StreamAggregate(S:Type): Category == explicitlyFinite?: % -> Boolean ++ explicitlyFinite?(s) tests if the stream has a finite ++ number of elements, and false otherwise. - ++ Note: for many datatypes, \axiom{explicitlyFinite?(s) = not possiblyInfinite?(s)}. + ++ Note: for many datatypes, + ++ \axiom{explicitlyFinite?(s) = not possiblyInfinite?(s)}. possiblyInfinite?: % -> Boolean ++ possiblyInfinite?(s) tests if the stream s could possibly ++ have an infinite number of elements. - ++ Note: for many datatypes, \axiom{possiblyInfinite?(s) = not explictlyFinite?(s)}. + ++ Note: for many datatypes, + ++ \axiom{possiblyInfinite?(s) = not explictlyFinite?(s)}. add c2: (%, %) -> S @@ -4980,7 +6589,8 @@ StreamAggregate(S:Type): Category == elt(x:%, i:Integer) == i := i - minIndex x - (i < 0) or empty?(x := rest(x, i::NonNegativeInteger)) => error "index out of range" + (i < 0) or empty?(x := rest(x, i::NonNegativeInteger)) => _ + error "index out of range" first x elt(x:%, i:UniversalSegment(Integer)) == @@ -5011,7 +6621,8 @@ StreamAggregate(S:Type): Category == setelt(x:%, i:Integer, s:S) == i := i - minIndex x - (i < 0) or empty?(x := rest(x,i::NonNegativeInteger)) => error "index out of range" + (i < 0) or empty?(x := rest(x,i::NonNegativeInteger)) => _ + error "index out of range" setfirst_!(x, s) setelt(x:%, i:UniversalSegment(Integer), s:S) == @@ -5058,9 +6669,42 @@ Note that this code is not included in the generated catdef.spad file. (SETQ |StreamAggregate;AL| (QUOTE NIL)) -(DEFUN |StreamAggregate| (#1=#:G87035) (LET (#2=#:G87036) (COND ((SETQ #2# (|assoc| (|devaluate| #1#) |StreamAggregate;AL|)) (CDR #2#)) (T (SETQ |StreamAggregate;AL| (|cons5| (CONS (|devaluate| #1#) (SETQ #2# (|StreamAggregate;| #1#))) |StreamAggregate;AL|)) #2#)))) - -(DEFUN |StreamAggregate;| (|t#1|) (PROG (#1=#:G87034) (RETURN (PROG1 (LETT #1# (|sublisV| (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) (COND (|StreamAggregate;CAT|) ((QUOTE T) (LETT |StreamAggregate;CAT| (|Join| (|UnaryRecursiveAggregate| (QUOTE |t#1|)) (|LinearAggregate| (QUOTE |t#1|)) (|mkCategory| (QUOTE |domain|) (QUOTE (((|explicitlyFinite?| ((|Boolean|) |$|)) T) ((|possiblyInfinite?| ((|Boolean|) |$|)) T))) NIL (QUOTE ((|Boolean|))) NIL)) . #2=(|StreamAggregate|))))) . #2#) (SETELT #1# 0 (LIST (QUOTE |StreamAggregate|) (|devaluate| |t#1|))))))) +(DEFUN |StreamAggregate| (#1=#:G87035) + (LET (#2=#:G87036) + (COND + ((SETQ #2# (|assoc| (|devaluate| #1#) |StreamAggregate;AL|)) (CDR #2#)) + (T + (SETQ |StreamAggregate;AL| + (|cons5| + (CONS (|devaluate| #1#) (SETQ #2# (|StreamAggregate;| #1#))) + |StreamAggregate;AL|)) + #2#)))) + +(DEFUN |StreamAggregate;| (|t#1|) + (PROG (#1=#:G87034) + (RETURN + (PROG1 + (LETT #1# + (|sublisV| + (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) + (COND + (|StreamAggregate;CAT|) + ((QUOTE T) + (LETT |StreamAggregate;CAT| + (|Join| + (|UnaryRecursiveAggregate| (QUOTE |t#1|)) + (|LinearAggregate| (QUOTE |t#1|)) + (|mkCategory| + (QUOTE |domain|) + (QUOTE ( + ((|explicitlyFinite?| ((|Boolean|) |$|)) T) + ((|possiblyInfinite?| ((|Boolean|) |$|)) T))) + NIL + (QUOTE ((|Boolean|))) + NIL)) + . #2=(|StreamAggregate|))))) + . #2#) + (SETELT #1# 0 (LIST (QUOTE |StreamAggregate|) (|devaluate| |t#1|))))))) @ \section{STAGG-.lsp BOOTSTRAP} {\bf STAGG-} depends on {\bf STAGG}. We need to break this cycle to build @@ -5075,35 +6719,312 @@ Note that this code is not included in the generated catdef.spad file. (|/VERSIONCHECK| 2) -(DEFUN |STAGG-;explicitlyFinite?;AB;1| (|x| |$|) (COND ((SPADCALL |x| (QREFELT |$| 9)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) +(DEFUN |STAGG-;explicitlyFinite?;AB;1| (|x| |$|) + (COND ((SPADCALL |x| (QREFELT |$| 9)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) -(DEFUN |STAGG-;possiblyInfinite?;AB;2| (|x| |$|) (SPADCALL |x| (QREFELT |$| 9))) +(DEFUN |STAGG-;possiblyInfinite?;AB;2| (|x| |$|) + (SPADCALL |x| (QREFELT |$| 9))) -(DEFUN |STAGG-;first;ANniA;3| (|x| |n| |$|) (PROG (#1=#:G87053 |i|) (RETURN (SEQ (SPADCALL (PROGN (LETT #1# NIL |STAGG-;first;ANniA;3|) (SEQ (LETT |i| 1 |STAGG-;first;ANniA;3|) G190 (COND ((QSGREATERP |i| |n|) (GO G191))) (SEQ (EXIT (LETT #1# (CONS (|STAGG-;c2| |x| (LETT |x| (SPADCALL |x| (QREFELT |$| 12)) |STAGG-;first;ANniA;3|) |$|) #1#) |STAGG-;first;ANniA;3|))) (LETT |i| (QSADD1 |i|) |STAGG-;first;ANniA;3|) (GO G190) G191 (EXIT (NREVERSE0 #1#)))) (QREFELT |$| 14)))))) - -(DEFUN |STAGG-;c2| (|x| |r| |$|) (COND ((SPADCALL |x| (QREFELT |$| 17)) (|error| "Index out of range")) ((QUOTE T) (SPADCALL |x| (QREFELT |$| 18))))) - -(DEFUN |STAGG-;elt;AIS;5| (|x| |i| |$|) (PROG (#1=#:G87056) (RETURN (SEQ (LETT |i| (|-| |i| (SPADCALL |x| (QREFELT |$| 20))) |STAGG-;elt;AIS;5|) (COND ((OR (|<| |i| 0) (SPADCALL (LETT |x| (SPADCALL |x| (PROG1 (LETT #1# |i| |STAGG-;elt;AIS;5|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 21)) |STAGG-;elt;AIS;5|) (QREFELT |$| 17))) (EXIT (|error| "index out of range")))) (EXIT (SPADCALL |x| (QREFELT |$| 18))))))) - -(DEFUN |STAGG-;elt;AUsA;6| (|x| |i| |$|) (PROG (|l| #1=#:G87060 |h| #2=#:G87062 #3=#:G87063) (RETURN (SEQ (LETT |l| (|-| (SPADCALL |i| (QREFELT |$| 24)) (SPADCALL |x| (QREFELT |$| 20))) |STAGG-;elt;AUsA;6|) (EXIT (COND ((|<| |l| 0) (|error| "index out of range")) ((NULL (SPADCALL |i| (QREFELT |$| 25))) (SPADCALL (SPADCALL |x| (PROG1 (LETT #1# |l| |STAGG-;elt;AUsA;6|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 21)) (QREFELT |$| 26))) ((QUOTE T) (SEQ (LETT |h| (|-| (SPADCALL |i| (QREFELT |$| 27)) (SPADCALL |x| (QREFELT |$| 20))) |STAGG-;elt;AUsA;6|) (EXIT (COND ((|<| |h| |l|) (SPADCALL (QREFELT |$| 28))) ((QUOTE T) (SPADCALL (SPADCALL |x| (PROG1 (LETT #2# |l| |STAGG-;elt;AUsA;6|) (|check-subtype| (|>=| #2# 0) (QUOTE (|NonNegativeInteger|)) #2#)) (QREFELT |$| 21)) (PROG1 (LETT #3# (|+| (|-| |h| |l|) 1) |STAGG-;elt;AUsA;6|) (|check-subtype| (|>=| #3# 0) (QUOTE (|NonNegativeInteger|)) #3#)) (QREFELT |$| 29))))))))))))) - -(DEFUN |STAGG-;concat;3A;7| (|x| |y| |$|) (SPADCALL (SPADCALL |x| (QREFELT |$| 26)) |y| (QREFELT |$| 31))) - -(DEFUN |STAGG-;concat;LA;8| (|l| |$|) (COND ((NULL |l|) (SPADCALL (QREFELT |$| 28))) ((QUOTE T) (SPADCALL (SPADCALL (|SPADfirst| |l|) (QREFELT |$| 26)) (SPADCALL (CDR |l|) (QREFELT |$| 34)) (QREFELT |$| 31))))) - -(DEFUN |STAGG-;map!;M2A;9| (|f| |l| |$|) (PROG (|y|) (RETURN (SEQ (LETT |y| |l| |STAGG-;map!;M2A;9|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |l| (QREFELT |$| 17)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (SPADCALL |l| (SPADCALL (SPADCALL |l| (QREFELT |$| 18)) |f|) (QREFELT |$| 36)) (EXIT (LETT |l| (SPADCALL |l| (QREFELT |$| 12)) |STAGG-;map!;M2A;9|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |y|))))) - -(DEFUN |STAGG-;fill!;ASA;10| (|x| |s| |$|) (PROG (|y|) (RETURN (SEQ (LETT |y| |x| |STAGG-;fill!;ASA;10|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |y| (QREFELT |$| 17)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (SPADCALL |y| |s| (QREFELT |$| 36)) (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 12)) |STAGG-;fill!;ASA;10|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |x|))))) - -(DEFUN |STAGG-;setelt;AI2S;11| (|x| |i| |s| |$|) (PROG (#1=#:G87081) (RETURN (SEQ (LETT |i| (|-| |i| (SPADCALL |x| (QREFELT |$| 20))) |STAGG-;setelt;AI2S;11|) (COND ((OR (|<| |i| 0) (SPADCALL (LETT |x| (SPADCALL |x| (PROG1 (LETT #1# |i| |STAGG-;setelt;AI2S;11|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 21)) |STAGG-;setelt;AI2S;11|) (QREFELT |$| 17))) (EXIT (|error| "index out of range")))) (EXIT (SPADCALL |x| |s| (QREFELT |$| 36))))))) - -(DEFUN |STAGG-;setelt;AUs2S;12| (|x| |i| |s| |$|) (PROG (|l| |h| #1=#:G87086 #2=#:G87087 |z| |y|) (RETURN (SEQ (LETT |l| (|-| (SPADCALL |i| (QREFELT |$| 24)) (SPADCALL |x| (QREFELT |$| 20))) |STAGG-;setelt;AUs2S;12|) (EXIT (COND ((|<| |l| 0) (|error| "index out of range")) ((QUOTE T) (SEQ (LETT |h| (COND ((SPADCALL |i| (QREFELT |$| 25)) (|-| (SPADCALL |i| (QREFELT |$| 27)) (SPADCALL |x| (QREFELT |$| 20)))) ((QUOTE T) (SPADCALL |x| (QREFELT |$| 41)))) |STAGG-;setelt;AUs2S;12|) (EXIT (COND ((|<| |h| |l|) |s|) ((QUOTE T) (SEQ (LETT |y| (SPADCALL |x| (PROG1 (LETT #1# |l| |STAGG-;setelt;AUs2S;12|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 21)) |STAGG-;setelt;AUs2S;12|) (LETT |z| (SPADCALL |y| (PROG1 (LETT #2# (|+| (|-| |h| |l|) 1) |STAGG-;setelt;AUs2S;12|) (|check-subtype| (|>=| #2# 0) (QUOTE (|NonNegativeInteger|)) #2#)) (QREFELT |$| 21)) |STAGG-;setelt;AUs2S;12|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |y| |z| (QREFELT |$| 42)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (SPADCALL |y| |s| (QREFELT |$| 36)) (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 12)) |STAGG-;setelt;AUs2S;12|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |s|))))))))))))) - -(DEFUN |STAGG-;concat!;3A;13| (|x| |y| |$|) (SEQ (COND ((SPADCALL |x| (QREFELT |$| 17)) |y|) ((QUOTE T) (SEQ (SPADCALL (SPADCALL |x| (QREFELT |$| 44)) |y| (QREFELT |$| 45)) (EXIT |x|)))))) - -(DEFUN |StreamAggregate&| (|#1| |#2|) (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) (RETURN (PROGN (LETT |DV$1| (|devaluate| |#1|) . #1=(|StreamAggregate&|)) (LETT |DV$2| (|devaluate| |#2|) . #1#) (LETT |dv$| (LIST (QUOTE |StreamAggregate&|) |DV$1| |DV$2|) . #1#) (LETT |$| (GETREFV 51) . #1#) (QSETREFV |$| 0 |dv$|) (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) (|stuffDomainSlots| |$|) (QSETREFV |$| 6 |#1|) (QSETREFV |$| 7 |#2|) (COND ((|HasAttribute| |#1| (QUOTE |shallowlyMutable|)) (PROGN (QSETREFV |$| 32 (CONS (|dispatchFunction| |STAGG-;concat;3A;7|) |$|)) (QSETREFV |$| 35 (CONS (|dispatchFunction| |STAGG-;concat;LA;8|) |$|)) (QSETREFV |$| 38 (CONS (|dispatchFunction| |STAGG-;map!;M2A;9|) |$|)) (QSETREFV |$| 39 (CONS (|dispatchFunction| |STAGG-;fill!;ASA;10|) |$|)) (QSETREFV |$| 40 (CONS (|dispatchFunction| |STAGG-;setelt;AI2S;11|) |$|)) (QSETREFV |$| 43 (CONS (|dispatchFunction| |STAGG-;setelt;AUs2S;12|) |$|)) (QSETREFV |$| 46 (CONS (|dispatchFunction| |STAGG-;concat!;3A;13|) |$|))))) |$|)))) - -(MAKEPROP (QUOTE |StreamAggregate&|) (QUOTE |infovec|) (LIST (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|Boolean|) (0 . |cyclic?|) |STAGG-;explicitlyFinite?;AB;1| |STAGG-;possiblyInfinite?;AB;2| (5 . |rest|) (|List| 7) (10 . |construct|) (|NonNegativeInteger|) |STAGG-;first;ANniA;3| (15 . |empty?|) (20 . |first|) (|Integer|) (25 . |minIndex|) (30 . |rest|) |STAGG-;elt;AIS;5| (|UniversalSegment| 19) (36 . |lo|) (41 . |hasHi|) (46 . |copy|) (51 . |hi|) (56 . |empty|) (60 . |first|) |STAGG-;elt;AUsA;6| (66 . |concat!|) (72 . |concat|) (|List| |$|) (78 . |concat|) (83 . |concat|) (88 . |setfirst!|) (|Mapping| 7 7) (94 . |map!|) (100 . |fill!|) (106 . |setelt|) (113 . |maxIndex|) (118 . |eq?|) (124 . |setelt|) (131 . |tail|) (136 . |setrest!|) (142 . |concat!|) (QUOTE "rest") (QUOTE "last") (QUOTE "first") (QUOTE "value"))) (QUOTE #(|setelt| 148 |possiblyInfinite?| 162 |map!| 167 |first| 173 |fill!| 179 |explicitlyFinite?| 185 |elt| 190 |concat!| 202 |concat| 208)) (QUOTE NIL) (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) (CONS (QUOTE #()) (CONS (QUOTE #()) (|makeByteWordVec2| 46 (QUOTE (1 6 8 0 9 1 6 0 0 12 1 6 0 13 14 1 6 8 0 17 1 6 7 0 18 1 6 19 0 20 2 6 0 0 15 21 1 23 19 0 24 1 23 8 0 25 1 6 0 0 26 1 23 19 0 27 0 6 0 28 2 6 0 0 15 29 2 6 0 0 0 31 2 0 0 0 0 32 1 6 0 33 34 1 0 0 33 35 2 6 7 0 7 36 2 0 0 37 0 38 2 0 0 0 7 39 3 0 7 0 19 7 40 1 6 19 0 41 2 6 8 0 0 42 3 0 7 0 23 7 43 1 6 0 0 44 2 6 0 0 0 45 2 0 0 0 0 46 3 0 7 0 19 7 40 3 0 7 0 23 7 43 1 0 8 0 11 2 0 0 37 0 38 2 0 0 0 15 16 2 0 0 0 7 39 1 0 8 0 10 2 0 7 0 19 22 2 0 0 0 23 30 2 0 0 0 0 46 1 0 0 33 35 2 0 0 0 0 32)))))) (QUOTE |lookupComplete|))) +(DEFUN |STAGG-;first;ANniA;3| (|x| |n| |$|) + (PROG (#1=#:G87053 |i|) + (RETURN + (SEQ + (SPADCALL + (PROGN + (LETT #1# NIL |STAGG-;first;ANniA;3|) + (SEQ + (LETT |i| 1 |STAGG-;first;ANniA;3|) + G190 + (COND ((QSGREATERP |i| |n|) (GO G191))) + (SEQ + (EXIT + (LETT #1# + (CONS + (|STAGG-;c2| |x| + (LETT |x| (SPADCALL |x| (QREFELT |$| 12)) |STAGG-;first;ANniA;3|) + |$|) + #1#) + |STAGG-;first;ANniA;3|))) + (LETT |i| (QSADD1 |i|) |STAGG-;first;ANniA;3|) + (GO G190) + G191 + (EXIT (NREVERSE0 #1#)))) + (QREFELT |$| 14)))))) + +(DEFUN |STAGG-;c2| (|x| |r| |$|) + (COND + ((SPADCALL |x| (QREFELT |$| 17)) (|error| "Index out of range")) + ((QUOTE T) (SPADCALL |x| (QREFELT |$| 18))))) + +(DEFUN |STAGG-;elt;AIS;5| (|x| |i| |$|) + (PROG (#1=#:G87056) + (RETURN + (SEQ + (LETT |i| (|-| |i| (SPADCALL |x| (QREFELT |$| 20))) |STAGG-;elt;AIS;5|) + (COND + ((OR + (|<| |i| 0) + (SPADCALL + (LETT |x| + (SPADCALL |x| + (PROG1 + (LETT #1# |i| |STAGG-;elt;AIS;5|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 21)) + |STAGG-;elt;AIS;5|) + (QREFELT |$| 17))) + (EXIT (|error| "index out of range")))) + (EXIT (SPADCALL |x| (QREFELT |$| 18))))))) + +(DEFUN |STAGG-;elt;AUsA;6| (|x| |i| |$|) + (PROG (|l| #1=#:G87060 |h| #2=#:G87062 #3=#:G87063) + (RETURN + (SEQ + (LETT |l| + (|-| (SPADCALL |i| (QREFELT |$| 24)) (SPADCALL |x| (QREFELT |$| 20))) + |STAGG-;elt;AUsA;6|) + (EXIT + (COND + ((|<| |l| 0) (|error| "index out of range")) + ((NULL (SPADCALL |i| (QREFELT |$| 25))) + (SPADCALL + (SPADCALL |x| + (PROG1 + (LETT #1# |l| |STAGG-;elt;AUsA;6|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 21)) + (QREFELT |$| 26))) + ((QUOTE T) + (SEQ + (LETT |h| + (|-| (SPADCALL |i| (QREFELT |$| 27)) (SPADCALL |x| (QREFELT |$| 20))) + |STAGG-;elt;AUsA;6|) + (EXIT + (COND + ((|<| |h| |l|) (SPADCALL (QREFELT |$| 28))) + ((QUOTE T) + (SPADCALL + (SPADCALL |x| + (PROG1 + (LETT #2# |l| |STAGG-;elt;AUsA;6|) + (|check-subtype| + (|>=| #2# 0) (QUOTE (|NonNegativeInteger|)) #2#)) + (QREFELT |$| 21)) + (PROG1 + (LETT #3# (|+| (|-| |h| |l|) 1) |STAGG-;elt;AUsA;6|) + (|check-subtype| (|>=| #3# 0) (QUOTE (|NonNegativeInteger|)) #3#)) + (QREFELT |$| 29))))))))))))) + +(DEFUN |STAGG-;concat;3A;7| (|x| |y| |$|) + (SPADCALL (SPADCALL |x| (QREFELT |$| 26)) |y| (QREFELT |$| 31))) + +(DEFUN |STAGG-;concat;LA;8| (|l| |$|) + (COND + ((NULL |l|) (SPADCALL (QREFELT |$| 28))) + ((QUOTE T) + (SPADCALL + (SPADCALL (|SPADfirst| |l|) (QREFELT |$| 26)) + (SPADCALL (CDR |l|) (QREFELT |$| 34)) + (QREFELT |$| 31))))) + +(DEFUN |STAGG-;map!;M2A;9| (|f| |l| |$|) + (PROG (|y|) + (RETURN + (SEQ + (LETT |y| |l| |STAGG-;map!;M2A;9|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |l| (QREFELT |$| 17)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (SPADCALL |l| + (SPADCALL (SPADCALL |l| (QREFELT |$| 18)) |f|) (QREFELT |$| 36)) + (EXIT (LETT |l| (SPADCALL |l| (QREFELT |$| 12)) |STAGG-;map!;M2A;9|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |y|))))) + +(DEFUN |STAGG-;fill!;ASA;10| (|x| |s| |$|) + (PROG (|y|) + (RETURN + (SEQ + (LETT |y| |x| |STAGG-;fill!;ASA;10|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |y| (QREFELT |$| 17)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (SPADCALL |y| |s| (QREFELT |$| 36)) + (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 12)) |STAGG-;fill!;ASA;10|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |x|))))) + +(DEFUN |STAGG-;setelt;AI2S;11| (|x| |i| |s| |$|) + (PROG (#1=#:G87081) + (RETURN + (SEQ + (LETT |i| + (|-| |i| (SPADCALL |x| (QREFELT |$| 20))) |STAGG-;setelt;AI2S;11|) + (COND + ((OR + (|<| |i| 0) + (SPADCALL + (LETT |x| + (SPADCALL |x| + (PROG1 + (LETT #1# |i| |STAGG-;setelt;AI2S;11|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 21)) + |STAGG-;setelt;AI2S;11|) + (QREFELT |$| 17))) + (EXIT (|error| "index out of range")))) + (EXIT (SPADCALL |x| |s| (QREFELT |$| 36))))))) + +(DEFUN |STAGG-;setelt;AUs2S;12| (|x| |i| |s| |$|) + (PROG (|l| |h| #1=#:G87086 #2=#:G87087 |z| |y|) + (RETURN + (SEQ + (LETT |l| + (|-| (SPADCALL |i| (QREFELT |$| 24)) (SPADCALL |x| (QREFELT |$| 20))) + |STAGG-;setelt;AUs2S;12|) + (EXIT + (COND + ((|<| |l| 0) (|error| "index out of range")) + ((QUOTE T) + (SEQ + (LETT |h| + (COND + ((SPADCALL |i| (QREFELT |$| 25)) + (|-| + (SPADCALL |i| (QREFELT |$| 27)) + (SPADCALL |x| (QREFELT |$| 20)))) + ((QUOTE T) (SPADCALL |x| (QREFELT |$| 41)))) + |STAGG-;setelt;AUs2S;12|) + (EXIT + (COND + ((|<| |h| |l|) |s|) + ((QUOTE T) + (SEQ + (LETT |y| + (SPADCALL |x| + (PROG1 + (LETT #1# |l| |STAGG-;setelt;AUs2S;12|) + (|check-subtype| + (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 21)) + |STAGG-;setelt;AUs2S;12|) + (LETT |z| + (SPADCALL |y| + (PROG1 + (LETT #2# (|+| (|-| |h| |l|) 1) |STAGG-;setelt;AUs2S;12|) + (|check-subtype| + (|>=| #2# 0) (QUOTE (|NonNegativeInteger|)) #2#)) + (QREFELT |$| 21)) + |STAGG-;setelt;AUs2S;12|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |y| |z| (QREFELT |$| 42)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (SPADCALL |y| |s| (QREFELT |$| 36)) + (EXIT + (LETT |y| + (SPADCALL |y| (QREFELT |$| 12)) + |STAGG-;setelt;AUs2S;12|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |s|))))))))))))) + +(DEFUN |STAGG-;concat!;3A;13| (|x| |y| |$|) + (SEQ + (COND + ((SPADCALL |x| (QREFELT |$| 17)) |y|) + ((QUOTE T) + (SEQ + (SPADCALL (SPADCALL |x| (QREFELT |$| 44)) |y| (QREFELT |$| 45)) + (EXIT |x|)))))) + +(DEFUN |StreamAggregate&| (|#1| |#2|) + (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|StreamAggregate&|)) + (LETT |DV$2| (|devaluate| |#2|) . #1#) + (LETT |dv$| (LIST (QUOTE |StreamAggregate&|) |DV$1| |DV$2|) . #1#) + (LETT |$| (GETREFV 51) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + (QSETREFV |$| 7 |#2|) + (COND + ((|HasAttribute| |#1| (QUOTE |shallowlyMutable|)) + (PROGN + (QSETREFV |$| 32 (CONS (|dispatchFunction| |STAGG-;concat;3A;7|) |$|)) + (QSETREFV |$| 35 (CONS (|dispatchFunction| |STAGG-;concat;LA;8|) |$|)) + (QSETREFV |$| 38 (CONS (|dispatchFunction| |STAGG-;map!;M2A;9|) |$|)) + (QSETREFV |$| 39 (CONS (|dispatchFunction| |STAGG-;fill!;ASA;10|) |$|)) + (QSETREFV |$| 40 + (CONS (|dispatchFunction| |STAGG-;setelt;AI2S;11|) |$|)) + (QSETREFV |$| 43 + (CONS (|dispatchFunction| |STAGG-;setelt;AUs2S;12|) |$|)) + (QSETREFV |$| 46 + (CONS (|dispatchFunction| |STAGG-;concat!;3A;13|) |$|))))) + |$|)))) + +(MAKEPROP + (QUOTE |StreamAggregate&|) + (QUOTE |infovec|) + (LIST + (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) + (|Boolean|) (0 . |cyclic?|) |STAGG-;explicitlyFinite?;AB;1| + |STAGG-;possiblyInfinite?;AB;2| (5 . |rest|) (|List| 7) + (10 . |construct|) (|NonNegativeInteger|) |STAGG-;first;ANniA;3| + (15 . |empty?|) (20 . |first|) (|Integer|) (25 . |minIndex|) + (30 . |rest|) |STAGG-;elt;AIS;5| (|UniversalSegment| 19) (36 . |lo|) + (41 . |hasHi|) (46 . |copy|) (51 . |hi|) (56 . |empty|) (60 . |first|) + |STAGG-;elt;AUsA;6| (66 . |concat!|) (72 . |concat|) (|List| |$|) + (78 . |concat|) (83 . |concat|) (88 . |setfirst!|) (|Mapping| 7 7) + (94 . |map!|) (100 . |fill!|) (106 . |setelt|) (113 . |maxIndex|) + (118 . |eq?|) (124 . |setelt|) (131 . |tail|) (136 . |setrest!|) + (142 . |concat!|) (QUOTE "rest") (QUOTE "last") (QUOTE "first") + (QUOTE "value"))) + (QUOTE #(|setelt| 148 |possiblyInfinite?| 162 |map!| 167 |first| 173 + |fill!| 179 |explicitlyFinite?| 185 |elt| 190 |concat!| 202 |concat| 208)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS + (QUOTE #()) + (CONS + (QUOTE #()) + (|makeByteWordVec2| 46 (QUOTE (1 6 8 0 9 1 6 0 0 12 1 6 0 13 14 1 6 + 8 0 17 1 6 7 0 18 1 6 19 0 20 2 6 0 0 15 21 1 23 19 0 24 1 23 8 + 0 25 1 6 0 0 26 1 23 19 0 27 0 6 0 28 2 6 0 0 15 29 2 6 0 0 0 31 + 2 0 0 0 0 32 1 6 0 33 34 1 0 0 33 35 2 6 7 0 7 36 2 0 0 37 0 38 2 + 0 0 0 7 39 3 0 7 0 19 7 40 1 6 19 0 41 2 6 8 0 0 42 3 0 7 0 23 7 43 + 1 6 0 0 44 2 6 0 0 0 45 2 0 0 0 0 46 3 0 7 0 19 7 40 3 0 7 0 23 7 43 + 1 0 8 0 11 2 0 0 37 0 38 2 0 0 0 15 16 2 0 0 0 7 39 1 0 8 0 10 2 0 7 + 0 19 22 2 0 0 0 23 30 2 0 0 0 0 46 1 0 0 33 35 2 0 0 0 0 32)))))) + (QUOTE |lookupComplete|))) @ \section{category TBAGG TableAggregate} <>= @@ -5176,7 +7097,7 @@ TableAggregate(Key:SetCategory, Entry:SetCategory): Category == -- z if % has finiteAggregate then - parts(t:%):List Record(key:Key,entry:Entry) == [[k, t.k] for k in keys t] + parts(t:%):List Record(key:Key,entry:Entry) == [[k, t.k] for k in keys t] parts(t:%):List Entry == [t.k for k in keys t] entries(t:%):List Entry == parts(t) @@ -5187,13 +7108,14 @@ TableAggregate(Key:SetCategory, Entry:SetCategory): Category == (e := search(k, t)) case "failed" or (e::Entry) ^= s.k => return false true - map(f: Record(key:Key,entry:Entry)->Record(key:Key,entry:Entry), t: %): % == + map(f: Record(key:Key,entry:Entry)->Record(key:Key,entry:Entry),t:%):%== z := table() for k in keys t repeat ke: Record(key:Key,entry:Entry) := f [k, t.k] z ke.key := ke.entry z - map_!(f: Record(key:Key,entry:Entry)->Record(key:Key,entry:Entry), t: %): % == + map_!(f: Record(key:Key,entry:Entry)->Record(key:Key,entry:Entry),t:%):%_ + == lke: List Record(key:Key,entry:Entry) := nil() for k in keys t repeat lke := cons(f [k, remove_!(k,t)::Entry], lke) @@ -5206,8 +7128,10 @@ TableAggregate(Key:SetCategory, Entry:SetCategory): Category == empty? ks => error "Cannot extract from an empty aggregate" [first ks, t first ks] - find(f: Record(key:Key,entry:Entry)->Boolean, t:%): Union(Record(key:Key,entry:Entry), "failed") == - for ke in parts(t)@List(Record(key:Key,entry:Entry)) repeat if f ke then return ke + find(f: Record(key:Key,entry:Entry)->Boolean, t:%):_ + Union(Record(key:Key,entry:Entry), "failed") == + for ke in parts(t)@List(Record(key:Key,entry:Entry)) _ + repeat if f ke then return ke "failed" index?(k: Key, t: %): Boolean == @@ -5284,9 +7208,11 @@ UnaryRecursiveAggregate(S:Type): Category == RecursiveAggregate S with ++ first(u) returns the first element of u ++ (equivalently, the value at the current node). elt: (%,"first") -> S - ++ elt(u,"first") (also written: \axiom{u . first}) is equivalent to first u. + ++ elt(u,"first") (also written: \axiom{u . first}) + ++ is equivalent to first u. first: (%,NonNegativeInteger) -> % - ++ first(u,n) returns a copy of the first n (\axiom{n >= 0}) elements of u. + ++ first(u,n) returns a copy of the first n (\axiom{n >= 0}) + ++ elements of u. rest: % -> % ++ rest(u) returns an aggregate consisting of all but the first ++ element of u @@ -5301,7 +7227,8 @@ UnaryRecursiveAggregate(S:Type): Category == RecursiveAggregate S with ++ last(u) resturn the last element of u. ++ Note: for lists, \axiom{last(u) = u . (maxIndex u) = u . (# u - 1)}. elt: (%,"last") -> S - ++ elt(u,"last") (also written: \axiom{u . last}) is equivalent to last u. + ++ elt(u,"last") (also written: \axiom{u . last}) is equivalent + ++ to last u. last: (%,NonNegativeInteger) -> % ++ last(u,n) returns a copy of the last n (\axiom{n >= 0}) nodes of u. ++ Note: \axiom{last(u,n)} is a list of n elements. @@ -5334,9 +7261,9 @@ UnaryRecursiveAggregate(S:Type): Category == RecursiveAggregate S with cycleSplit_!: % -> % ++ cycleSplit!(u) splits the aggregate by dropping off the cycle. ++ The value returned is the cycle entry, or nil if none exists. - ++ For example, if \axiom{w = concat(u,v)} is the cyclic list where v is - ++ the head of the cycle, \axiom{cycleSplit!(w)} will drop v off w thus - ++ destructively changing w to u, and returning v. + ++ For example, if \axiom{w = concat(u,v)} is the cyclic list where + ++ v is the head of the cycle, \axiom{cycleSplit!(w)} will drop v + ++ off w thus destructively changing w to u, and returning v. setfirst_!: (%,S) -> S ++ setfirst!(u,x) destructively changes the first element of a to x. setelt: (%,"first",S) -> S @@ -5345,8 +7272,8 @@ UnaryRecursiveAggregate(S:Type): Category == RecursiveAggregate S with setrest_!: (%,%) -> % ++ setrest!(u,v) destructively changes the rest of u to v. setelt: (%,"rest",%) -> % - ++ setelt(u,"rest",v) (also written: \axiom{u.rest := v}) is equivalent to - ++ \axiom{setrest!(u,v)}. + ++ setelt(u,"rest",v) (also written: \axiom{u.rest := v}) is + ++ equivalent to \axiom{setrest!(u,v)}. setlast_!: (%,S) -> S ++ setlast!(u,x) destructively changes the last element of u to x. setelt: (%,"last",S) -> S @@ -5538,9 +7465,78 @@ Note that this code is not included in the generated catdef.spad file. (SETQ |UnaryRecursiveAggregate;AL| (QUOTE NIL)) -(DEFUN |UnaryRecursiveAggregate| (#1=#:G84596) (LET (#2=#:G84597) (COND ((SETQ #2# (|assoc| (|devaluate| #1#) |UnaryRecursiveAggregate;AL|)) (CDR #2#)) (T (SETQ |UnaryRecursiveAggregate;AL| (|cons5| (CONS (|devaluate| #1#) (SETQ #2# (|UnaryRecursiveAggregate;| #1#))) |UnaryRecursiveAggregate;AL|)) #2#)))) - -(DEFUN |UnaryRecursiveAggregate;| (|t#1|) (PROG (#1=#:G84595) (RETURN (PROG1 (LETT #1# (|sublisV| (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) (COND (|UnaryRecursiveAggregate;CAT|) ((QUOTE T) (LETT |UnaryRecursiveAggregate;CAT| (|Join| (|RecursiveAggregate| (QUOTE |t#1|)) (|mkCategory| (QUOTE |domain|) (QUOTE (((|concat| (|$| |$| |$|)) T) ((|concat| (|$| |t#1| |$|)) T) ((|first| (|t#1| |$|)) T) ((|elt| (|t#1| |$| "first")) T) ((|first| (|$| |$| (|NonNegativeInteger|))) T) ((|rest| (|$| |$|)) T) ((|elt| (|$| |$| "rest")) T) ((|rest| (|$| |$| (|NonNegativeInteger|))) T) ((|last| (|t#1| |$|)) T) ((|elt| (|t#1| |$| "last")) T) ((|last| (|$| |$| (|NonNegativeInteger|))) T) ((|tail| (|$| |$|)) T) ((|second| (|t#1| |$|)) T) ((|third| (|t#1| |$|)) T) ((|cycleEntry| (|$| |$|)) T) ((|cycleLength| ((|NonNegativeInteger|) |$|)) T) ((|cycleTail| (|$| |$|)) T) ((|concat!| (|$| |$| |$|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|concat!| (|$| |$| |t#1|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|cycleSplit!| (|$| |$|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|setfirst!| (|t#1| |$| |t#1|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|setelt| (|t#1| |$| "first" |t#1|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|setrest!| (|$| |$| |$|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|setelt| (|$| |$| "rest" |$|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|setlast!| (|t#1| |$| |t#1|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|setelt| (|t#1| |$| "last" |t#1|)) (|has| |$| (ATTRIBUTE |shallowlyMutable|))) ((|split!| (|$| |$| (|Integer|))) (|has| |$| (ATTRIBUTE |shallowlyMutable|))))) NIL (QUOTE ((|Integer|) (|NonNegativeInteger|))) NIL)) . #2=(|UnaryRecursiveAggregate|))))) . #2#) (SETELT #1# 0 (LIST (QUOTE |UnaryRecursiveAggregate|) (|devaluate| |t#1|))))))) +(DEFUN |UnaryRecursiveAggregate| (#1=#:G84596) + (LET (#2=#:G84597) + (COND + ((SETQ #2# (|assoc| (|devaluate| #1#) |UnaryRecursiveAggregate;AL|)) + (CDR #2#)) + (T + (SETQ |UnaryRecursiveAggregate;AL| + (|cons5| + (CONS (|devaluate| #1#) (SETQ #2# (|UnaryRecursiveAggregate;| #1#))) + |UnaryRecursiveAggregate;AL|)) + #2#)))) + +(DEFUN |UnaryRecursiveAggregate;| (|t#1|) + (PROG (#1=#:G84595) + (RETURN + (PROG1 + (LETT #1# + (|sublisV| + (PAIR (QUOTE (|t#1|)) (LIST (|devaluate| |t#1|))) + (COND + (|UnaryRecursiveAggregate;CAT|) + ((QUOTE T) + (LETT |UnaryRecursiveAggregate;CAT| + (|Join| + (|RecursiveAggregate| (QUOTE |t#1|)) + (|mkCategory| + (QUOTE |domain|) + (QUOTE ( + ((|concat| (|$| |$| |$|)) T) + ((|concat| (|$| |t#1| |$|)) T) + ((|first| (|t#1| |$|)) T) + ((|elt| (|t#1| |$| "first")) T) + ((|first| (|$| |$| (|NonNegativeInteger|))) T) + ((|rest| (|$| |$|)) T) + ((|elt| (|$| |$| "rest")) T) + ((|rest| (|$| |$| (|NonNegativeInteger|))) T) + ((|last| (|t#1| |$|)) T) + ((|elt| (|t#1| |$| "last")) T) + ((|last| (|$| |$| (|NonNegativeInteger|))) T) + ((|tail| (|$| |$|)) T) + ((|second| (|t#1| |$|)) T) + ((|third| (|t#1| |$|)) T) + ((|cycleEntry| (|$| |$|)) T) + ((|cycleLength| ((|NonNegativeInteger|) |$|)) T) + ((|cycleTail| (|$| |$|)) T) + ((|concat!| (|$| |$| |$|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|concat!| (|$| |$| |t#1|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|cycleSplit!| (|$| |$|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|setfirst!| (|t#1| |$| |t#1|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|setelt| (|t#1| |$| "first" |t#1|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|setrest!| (|$| |$| |$|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|setelt| (|$| |$| "rest" |$|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|setlast!| (|t#1| |$| |t#1|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|setelt| (|t#1| |$| "last" |t#1|)) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))) + ((|split!| (|$| |$| (|Integer|))) + (|has| |$| (ATTRIBUTE |shallowlyMutable|))))) + NIL + (QUOTE ((|Integer|) (|NonNegativeInteger|))) + NIL)) + . #2=(|UnaryRecursiveAggregate|))))) + . #2#) + (SETELT #1# 0 + (LIST (QUOTE |UnaryRecursiveAggregate|) (|devaluate| |t#1|))))))) @ \section{URAGG-.lsp BOOTSTRAP} {\bf URAGG-} depends on {\bf URAGG}. We need to break this cycle to build @@ -5555,75 +7551,674 @@ Note that this code is not included in the generated catdef.spad file. (|/VERSIONCHECK| 2) -(DEFUN |URAGG-;elt;AfirstS;1| (|x| G84610 |$|) (SPADCALL |x| (QREFELT |$| 8))) - -(DEFUN |URAGG-;elt;AlastS;2| (|x| G84612 |$|) (SPADCALL |x| (QREFELT |$| 11))) - -(DEFUN |URAGG-;elt;ArestA;3| (|x| G84614 |$|) (SPADCALL |x| (QREFELT |$| 14))) - -(DEFUN |URAGG-;second;AS;4| (|x| |$|) (SPADCALL (SPADCALL |x| (QREFELT |$| 14)) (QREFELT |$| 8))) - -(DEFUN |URAGG-;third;AS;5| (|x| |$|) (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT |$| 14)) (QREFELT |$| 14)) (QREFELT |$| 8))) - -(DEFUN |URAGG-;cyclic?;AB;6| (|x| |$|) (COND ((OR (SPADCALL |x| (QREFELT |$| 20)) (SPADCALL (|URAGG-;findCycle| |x| |$|) (QREFELT |$| 20))) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) - -(DEFUN |URAGG-;last;AS;7| (|x| |$|) (SPADCALL (SPADCALL |x| (QREFELT |$| 22)) (QREFELT |$| 8))) - -(DEFUN |URAGG-;nodes;AL;8| (|x| |$|) (PROG (|l|) (RETURN (SEQ (LETT |l| NIL |URAGG-;nodes;AL;8|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |x| (QREFELT |$| 20)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (LETT |l| (CONS |x| |l|) |URAGG-;nodes;AL;8|) (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;nodes;AL;8|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT (NREVERSE |l|)))))) - -(DEFUN |URAGG-;children;AL;9| (|x| |$|) (PROG (|l|) (RETURN (SEQ (LETT |l| NIL |URAGG-;children;AL;9|) (EXIT (COND ((SPADCALL |x| (QREFELT |$| 20)) |l|) ((QUOTE T) (CONS (SPADCALL |x| (QREFELT |$| 14)) |l|)))))))) - -(DEFUN |URAGG-;leaf?;AB;10| (|x| |$|) (SPADCALL |x| (QREFELT |$| 20))) - -(DEFUN |URAGG-;value;AS;11| (|x| |$|) (COND ((SPADCALL |x| (QREFELT |$| 20)) (|error| "value of empty object")) ((QUOTE T) (SPADCALL |x| (QREFELT |$| 8))))) - -(DEFUN |URAGG-;less?;ANniB;12| (|l| |n| |$|) (PROG (|i|) (RETURN (SEQ (LETT |i| |n| |URAGG-;less?;ANniB;12|) (SEQ G190 (COND ((NULL (COND ((|<| 0 |i|) (COND ((SPADCALL |l| (QREFELT |$| 20)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) ((QUOTE T) (QUOTE NIL)))) (GO G191))) (SEQ (LETT |l| (SPADCALL |l| (QREFELT |$| 14)) |URAGG-;less?;ANniB;12|) (EXIT (LETT |i| (|-| |i| 1) |URAGG-;less?;ANniB;12|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT (|<| 0 |i|)))))) - -(DEFUN |URAGG-;more?;ANniB;13| (|l| |n| |$|) (PROG (|i|) (RETURN (SEQ (LETT |i| |n| |URAGG-;more?;ANniB;13|) (SEQ G190 (COND ((NULL (COND ((|<| 0 |i|) (COND ((SPADCALL |l| (QREFELT |$| 20)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) ((QUOTE T) (QUOTE NIL)))) (GO G191))) (SEQ (LETT |l| (SPADCALL |l| (QREFELT |$| 14)) |URAGG-;more?;ANniB;13|) (EXIT (LETT |i| (|-| |i| 1) |URAGG-;more?;ANniB;13|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT (COND ((ZEROP |i|) (COND ((SPADCALL |l| (QREFELT |$| 20)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) ((QUOTE T) (QUOTE NIL)))))))) - -(DEFUN |URAGG-;size?;ANniB;14| (|l| |n| |$|) (PROG (|i|) (RETURN (SEQ (LETT |i| |n| |URAGG-;size?;ANniB;14|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |l| (QREFELT |$| 20)) (QUOTE NIL)) ((QUOTE T) (|<| 0 |i|)))) (GO G191))) (SEQ (LETT |l| (SPADCALL |l| (QREFELT |$| 14)) |URAGG-;size?;ANniB;14|) (EXIT (LETT |i| (|-| |i| 1) |URAGG-;size?;ANniB;14|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT (COND ((SPADCALL |l| (QREFELT |$| 20)) (ZEROP |i|)) ((QUOTE T) (QUOTE NIL)))))))) - -(DEFUN |URAGG-;#;ANni;15| (|x| |$|) (PROG (|k|) (RETURN (SEQ (SEQ (LETT |k| 0 |URAGG-;#;ANni;15|) G190 (COND ((NULL (COND ((SPADCALL |x| (QREFELT |$| 20)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (COND ((EQL |k| 1000) (COND ((SPADCALL |x| (QREFELT |$| 33)) (EXIT (|error| "cyclic list")))))) (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;#;ANni;15|))) (LETT |k| (QSADD1 |k|) |URAGG-;#;ANni;15|) (GO G190) G191 (EXIT NIL)) (EXIT |k|))))) - -(DEFUN |URAGG-;tail;2A;16| (|x| |$|) (PROG (|k| |y|) (RETURN (SEQ (COND ((SPADCALL |x| (QREFELT |$| 20)) (|error| "empty list")) ((QUOTE T) (SEQ (LETT |y| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;tail;2A;16|) (SEQ (LETT |k| 0 |URAGG-;tail;2A;16|) G190 (COND ((NULL (COND ((SPADCALL |y| (QREFELT |$| 20)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (COND ((EQL |k| 1000) (COND ((SPADCALL |x| (QREFELT |$| 33)) (EXIT (|error| "cyclic list")))))) (EXIT (LETT |y| (SPADCALL (LETT |x| |y| |URAGG-;tail;2A;16|) (QREFELT |$| 14)) |URAGG-;tail;2A;16|))) (LETT |k| (QSADD1 |k|) |URAGG-;tail;2A;16|) (GO G190) G191 (EXIT NIL)) (EXIT |x|)))))))) - -(DEFUN |URAGG-;findCycle| (|x| |$|) (PROG (#1=#:G84667 |y|) (RETURN (SEQ (EXIT (SEQ (LETT |y| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;findCycle|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |y| (QREFELT |$| 20)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (COND ((SPADCALL |x| |y| (QREFELT |$| 36)) (PROGN (LETT #1# |x| |URAGG-;findCycle|) (GO #1#)))) (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;findCycle|) (LETT |y| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;findCycle|) (COND ((SPADCALL |y| (QREFELT |$| 20)) (PROGN (LETT #1# |y| |URAGG-;findCycle|) (GO #1#)))) (COND ((SPADCALL |x| |y| (QREFELT |$| 36)) (PROGN (LETT #1# |y| |URAGG-;findCycle|) (GO #1#)))) (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;findCycle|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |y|))) #1# (EXIT #1#))))) - -(DEFUN |URAGG-;cycleTail;2A;18| (|x| |$|) (PROG (|y| |z|) (RETURN (SEQ (COND ((SPADCALL (LETT |y| (LETT |x| (SPADCALL |x| (QREFELT |$| 37)) |URAGG-;cycleTail;2A;18|) |URAGG-;cycleTail;2A;18|) (QREFELT |$| 20)) |x|) ((QUOTE T) (SEQ (LETT |z| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;cycleTail;2A;18|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |x| |z| (QREFELT |$| 36)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (LETT |y| |z| |URAGG-;cycleTail;2A;18|) (EXIT (LETT |z| (SPADCALL |z| (QREFELT |$| 14)) |URAGG-;cycleTail;2A;18|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |y|)))))))) - -(DEFUN |URAGG-;cycleEntry;2A;19| (|x| |$|) (PROG (|l| |z| |k| |y|) (RETURN (SEQ (COND ((SPADCALL |x| (QREFELT |$| 20)) |x|) ((SPADCALL (LETT |y| (|URAGG-;findCycle| |x| |$|) |URAGG-;cycleEntry;2A;19|) (QREFELT |$| 20)) |y|) ((QUOTE T) (SEQ (LETT |z| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;cycleEntry;2A;19|) (SEQ (LETT |l| 1 |URAGG-;cycleEntry;2A;19|) G190 (COND ((NULL (COND ((SPADCALL |y| |z| (QREFELT |$| 36)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (LETT |z| (SPADCALL |z| (QREFELT |$| 14)) |URAGG-;cycleEntry;2A;19|))) (LETT |l| (QSADD1 |l|) |URAGG-;cycleEntry;2A;19|) (GO G190) G191 (EXIT NIL)) (LETT |y| |x| |URAGG-;cycleEntry;2A;19|) (SEQ (LETT |k| 1 |URAGG-;cycleEntry;2A;19|) G190 (COND ((QSGREATERP |k| |l|) (GO G191))) (SEQ (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;cycleEntry;2A;19|))) (LETT |k| (QSADD1 |k|) |URAGG-;cycleEntry;2A;19|) (GO G190) G191 (EXIT NIL)) (SEQ G190 (COND ((NULL (COND ((SPADCALL |x| |y| (QREFELT |$| 36)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;cycleEntry;2A;19|) (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;cycleEntry;2A;19|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |x|)))))))) - -(DEFUN |URAGG-;cycleLength;ANni;20| (|x| |$|) (PROG (|k| |y|) (RETURN (SEQ (COND ((OR (SPADCALL |x| (QREFELT |$| 20)) (SPADCALL (LETT |x| (|URAGG-;findCycle| |x| |$|) |URAGG-;cycleLength;ANni;20|) (QREFELT |$| 20))) 0) ((QUOTE T) (SEQ (LETT |y| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;cycleLength;ANni;20|) (SEQ (LETT |k| 1 |URAGG-;cycleLength;ANni;20|) G190 (COND ((NULL (COND ((SPADCALL |x| |y| (QREFELT |$| 36)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;cycleLength;ANni;20|))) (LETT |k| (QSADD1 |k|) |URAGG-;cycleLength;ANni;20|) (GO G190) G191 (EXIT NIL)) (EXIT |k|)))))))) - -(DEFUN |URAGG-;rest;ANniA;21| (|x| |n| |$|) (PROG (|i|) (RETURN (SEQ (SEQ (LETT |i| 1 |URAGG-;rest;ANniA;21|) G190 (COND ((QSGREATERP |i| |n|) (GO G191))) (SEQ (EXIT (COND ((SPADCALL |x| (QREFELT |$| 20)) (|error| "Index out of range")) ((QUOTE T) (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;rest;ANniA;21|))))) (LETT |i| (QSADD1 |i|) |URAGG-;rest;ANniA;21|) (GO G190) G191 (EXIT NIL)) (EXIT |x|))))) - -(DEFUN |URAGG-;last;ANniA;22| (|x| |n| |$|) (PROG (|m| #1=#:G84694) (RETURN (SEQ (LETT |m| (SPADCALL |x| (QREFELT |$| 42)) |URAGG-;last;ANniA;22|) (EXIT (COND ((|<| |m| |n|) (|error| "index out of range")) ((QUOTE T) (SPADCALL (SPADCALL |x| (PROG1 (LETT #1# (|-| |m| |n|) |URAGG-;last;ANniA;22|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 43)) (QREFELT |$| 44))))))))) - -(DEFUN |URAGG-;=;2AB;23| (|x| |y| |$|) (PROG (|k| #1=#:G84705) (RETURN (SEQ (EXIT (COND ((SPADCALL |x| |y| (QREFELT |$| 36)) (QUOTE T)) ((QUOTE T) (SEQ (SEQ (LETT |k| 0 |URAGG-;=;2AB;23|) G190 (COND ((NULL (COND ((OR (SPADCALL |x| (QREFELT |$| 20)) (SPADCALL |y| (QREFELT |$| 20))) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (COND ((EQL |k| 1000) (COND ((SPADCALL |x| (QREFELT |$| 33)) (EXIT (|error| "cyclic list")))))) (COND ((NULL (SPADCALL (SPADCALL |x| (QREFELT |$| 8)) (SPADCALL |y| (QREFELT |$| 8)) (QREFELT |$| 46))) (EXIT (PROGN (LETT #1# (QUOTE NIL) |URAGG-;=;2AB;23|) (GO #1#))))) (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;=;2AB;23|) (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;=;2AB;23|))) (LETT |k| (QSADD1 |k|) |URAGG-;=;2AB;23|) (GO G190) G191 (EXIT NIL)) (EXIT (COND ((SPADCALL |x| (QREFELT |$| 20)) (SPADCALL |y| (QREFELT |$| 20))) ((QUOTE T) (QUOTE NIL)))))))) #1# (EXIT #1#))))) - -(DEFUN |URAGG-;node?;2AB;24| (|u| |v| |$|) (PROG (|k| #1=#:G84711) (RETURN (SEQ (EXIT (SEQ (SEQ (LETT |k| 0 |URAGG-;node?;2AB;24|) G190 (COND ((NULL (COND ((SPADCALL |v| (QREFELT |$| 20)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (EXIT (COND ((SPADCALL |u| |v| (QREFELT |$| 48)) (PROGN (LETT #1# (QUOTE T) |URAGG-;node?;2AB;24|) (GO #1#))) ((QUOTE T) (SEQ (COND ((EQL |k| 1000) (COND ((SPADCALL |v| (QREFELT |$| 33)) (EXIT (|error| "cyclic list")))))) (EXIT (LETT |v| (SPADCALL |v| (QREFELT |$| 14)) |URAGG-;node?;2AB;24|))))))) (LETT |k| (QSADD1 |k|) |URAGG-;node?;2AB;24|) (GO G190) G191 (EXIT NIL)) (EXIT (SPADCALL |u| |v| (QREFELT |$| 48))))) #1# (EXIT #1#))))) - -(DEFUN |URAGG-;setelt;Afirst2S;25| (|x| G84713 |a| |$|) (SPADCALL |x| |a| (QREFELT |$| 50))) - -(DEFUN |URAGG-;setelt;Alast2S;26| (|x| G84715 |a| |$|) (SPADCALL |x| |a| (QREFELT |$| 52))) - -(DEFUN |URAGG-;setelt;Arest2A;27| (|x| G84717 |a| |$|) (SPADCALL |x| |a| (QREFELT |$| 54))) - -(DEFUN |URAGG-;concat;3A;28| (|x| |y| |$|) (SPADCALL (SPADCALL |x| (QREFELT |$| 44)) |y| (QREFELT |$| 56))) - -(DEFUN |URAGG-;setlast!;A2S;29| (|x| |s| |$|) (SEQ (COND ((SPADCALL |x| (QREFELT |$| 20)) (|error| "setlast: empty list")) ((QUOTE T) (SEQ (SPADCALL (SPADCALL |x| (QREFELT |$| 22)) |s| (QREFELT |$| 50)) (EXIT |s|)))))) - -(DEFUN |URAGG-;setchildren!;ALA;30| (|u| |lv| |$|) (COND ((EQL (LENGTH |lv|) 1) (SPADCALL |u| (|SPADfirst| |lv|) (QREFELT |$| 54))) ((QUOTE T) (|error| "wrong number of children specified")))) - -(DEFUN |URAGG-;setvalue!;A2S;31| (|u| |s| |$|) (SPADCALL |u| |s| (QREFELT |$| 50))) - -(DEFUN |URAGG-;split!;AIA;32| (|p| |n| |$|) (PROG (#1=#:G84725 |q|) (RETURN (SEQ (COND ((|<| |n| 1) (|error| "index out of range")) ((QUOTE T) (SEQ (LETT |p| (SPADCALL |p| (PROG1 (LETT #1# (|-| |n| 1) |URAGG-;split!;AIA;32|) (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) (QREFELT |$| 43)) |URAGG-;split!;AIA;32|) (LETT |q| (SPADCALL |p| (QREFELT |$| 14)) |URAGG-;split!;AIA;32|) (SPADCALL |p| (SPADCALL (QREFELT |$| 61)) (QREFELT |$| 54)) (EXIT |q|)))))))) - -(DEFUN |URAGG-;cycleSplit!;2A;33| (|x| |$|) (PROG (|y| |z|) (RETURN (SEQ (COND ((OR (SPADCALL (LETT |y| (SPADCALL |x| (QREFELT |$| 37)) |URAGG-;cycleSplit!;2A;33|) (QREFELT |$| 20)) (SPADCALL |x| |y| (QREFELT |$| 36))) |y|) ((QUOTE T) (SEQ (LETT |z| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;cycleSplit!;2A;33|) (SEQ G190 (COND ((NULL (COND ((SPADCALL |z| |y| (QREFELT |$| 36)) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) (GO G191))) (SEQ (LETT |x| |z| |URAGG-;cycleSplit!;2A;33|) (EXIT (LETT |z| (SPADCALL |z| (QREFELT |$| 14)) |URAGG-;cycleSplit!;2A;33|))) NIL (GO G190) G191 (EXIT NIL)) (SPADCALL |x| (SPADCALL (QREFELT |$| 61)) (QREFELT |$| 54)) (EXIT |y|)))))))) - -(DEFUN |UnaryRecursiveAggregate&| (|#1| |#2|) (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) (RETURN (PROGN (LETT |DV$1| (|devaluate| |#1|) . #1=(|UnaryRecursiveAggregate&|)) (LETT |DV$2| (|devaluate| |#2|) . #1#) (LETT |dv$| (LIST (QUOTE |UnaryRecursiveAggregate&|) |DV$1| |DV$2|) . #1#) (LETT |$| (GETREFV 66) . #1#) (QSETREFV |$| 0 |dv$|) (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 (LIST (|HasAttribute| |#1| (QUOTE |shallowlyMutable|)))) . #1#)) (|stuffDomainSlots| |$|) (QSETREFV |$| 6 |#1|) (QSETREFV |$| 7 |#2|) (COND ((|HasAttribute| |#1| (QUOTE |finiteAggregate|)) (QSETREFV |$| 45 (CONS (|dispatchFunction| |URAGG-;last;ANniA;22|) |$|)))) (COND ((|HasCategory| |#2| (QUOTE (|SetCategory|))) (PROGN (QSETREFV |$| 47 (CONS (|dispatchFunction| |URAGG-;=;2AB;23|) |$|)) (QSETREFV |$| 49 (CONS (|dispatchFunction| |URAGG-;node?;2AB;24|) |$|))))) (COND ((|testBitVector| |pv$| 1) (PROGN (QSETREFV |$| 51 (CONS (|dispatchFunction| |URAGG-;setelt;Afirst2S;25|) |$|)) (QSETREFV |$| 53 (CONS (|dispatchFunction| |URAGG-;setelt;Alast2S;26|) |$|)) (QSETREFV |$| 55 (CONS (|dispatchFunction| |URAGG-;setelt;Arest2A;27|) |$|)) (QSETREFV |$| 57 (CONS (|dispatchFunction| |URAGG-;concat;3A;28|) |$|)) (QSETREFV |$| 58 (CONS (|dispatchFunction| |URAGG-;setlast!;A2S;29|) |$|)) (QSETREFV |$| 59 (CONS (|dispatchFunction| |URAGG-;setchildren!;ALA;30|) |$|)) (QSETREFV |$| 60 (CONS (|dispatchFunction| |URAGG-;setvalue!;A2S;31|) |$|)) (QSETREFV |$| 63 (CONS (|dispatchFunction| |URAGG-;split!;AIA;32|) |$|)) (QSETREFV |$| 64 (CONS (|dispatchFunction| |URAGG-;cycleSplit!;2A;33|) |$|))))) |$|)))) - -(MAKEPROP (QUOTE |UnaryRecursiveAggregate&|) (QUOTE |infovec|) (LIST (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (0 . |first|) (QUOTE "first") |URAGG-;elt;AfirstS;1| (5 . |last|) (QUOTE "last") |URAGG-;elt;AlastS;2| (10 . |rest|) (QUOTE "rest") |URAGG-;elt;ArestA;3| |URAGG-;second;AS;4| |URAGG-;third;AS;5| (|Boolean|) (15 . |empty?|) |URAGG-;cyclic?;AB;6| (20 . |tail|) |URAGG-;last;AS;7| (|List| |$|) |URAGG-;nodes;AL;8| |URAGG-;children;AL;9| |URAGG-;leaf?;AB;10| |URAGG-;value;AS;11| (|NonNegativeInteger|) |URAGG-;less?;ANniB;12| |URAGG-;more?;ANniB;13| |URAGG-;size?;ANniB;14| (25 . |cyclic?|) |URAGG-;#;ANni;15| |URAGG-;tail;2A;16| (30 . |eq?|) (36 . |cycleEntry|) |URAGG-;cycleTail;2A;18| |URAGG-;cycleEntry;2A;19| |URAGG-;cycleLength;ANni;20| |URAGG-;rest;ANniA;21| (41 . |#|) (46 . |rest|) (52 . |copy|) (57 . |last|) (63 . |=|) (69 . |=|) (75 . |=|) (81 . |node?|) (87 . |setfirst!|) (93 . |setelt|) (100 . |setlast!|) (106 . |setelt|) (113 . |setrest!|) (119 . |setelt|) (126 . |concat!|) (132 . |concat|) (138 . |setlast!|) (144 . |setchildren!|) (150 . |setvalue!|) (156 . |empty|) (|Integer|) (160 . |split!|) (166 . |cycleSplit!|) (QUOTE "value"))) (QUOTE #(|value| 171 |third| 176 |tail| 181 |split!| 186 |size?| 192 |setvalue!| 198 |setlast!| 204 |setelt| 210 |setchildren!| 231 |second| 237 |rest| 242 |nodes| 248 |node?| 253 |more?| 259 |less?| 265 |leaf?| 271 |last| 276 |elt| 287 |cyclic?| 305 |cycleTail| 310 |cycleSplit!| 315 |cycleLength| 320 |cycleEntry| 325 |concat| 330 |children| 336 |=| 341 |#| 347)) (QUOTE NIL) (CONS (|makeByteWordVec2| 1 (QUOTE NIL)) (CONS (QUOTE #()) (CONS (QUOTE #()) (|makeByteWordVec2| 64 (QUOTE (1 6 7 0 8 1 6 7 0 11 1 6 0 0 14 1 6 19 0 20 1 6 0 0 22 1 6 19 0 33 2 6 19 0 0 36 1 6 0 0 37 1 6 29 0 42 2 6 0 0 29 43 1 6 0 0 44 2 0 0 0 29 45 2 7 19 0 0 46 2 0 19 0 0 47 2 6 19 0 0 48 2 0 19 0 0 49 2 6 7 0 7 50 3 0 7 0 9 7 51 2 6 7 0 7 52 3 0 7 0 12 7 53 2 6 0 0 0 54 3 0 0 0 15 0 55 2 6 0 0 0 56 2 0 0 0 0 57 2 0 7 0 7 58 2 0 0 0 24 59 2 0 7 0 7 60 0 6 0 61 2 0 0 0 62 63 1 0 0 0 64 1 0 7 0 28 1 0 7 0 18 1 0 0 0 35 2 0 0 0 62 63 2 0 19 0 29 32 2 0 7 0 7 60 2 0 7 0 7 58 3 0 7 0 12 7 53 3 0 0 0 15 0 55 3 0 7 0 9 7 51 2 0 0 0 24 59 1 0 7 0 17 2 0 0 0 29 41 1 0 24 0 25 2 0 19 0 0 49 2 0 19 0 29 31 2 0 19 0 29 30 1 0 19 0 27 2 0 0 0 29 45 1 0 7 0 23 2 0 7 0 12 13 2 0 0 0 15 16 2 0 7 0 9 10 1 0 19 0 21 1 0 0 0 38 1 0 0 0 64 1 0 29 0 40 1 0 0 0 39 2 0 0 0 0 57 1 0 24 0 26 2 0 19 0 0 47 1 0 29 0 34)))))) (QUOTE |lookupComplete|))) +(DEFUN |URAGG-;elt;AfirstS;1| (|x| G84610 |$|) + (SPADCALL |x| (QREFELT |$| 8))) + +(DEFUN |URAGG-;elt;AlastS;2| (|x| G84612 |$|) + (SPADCALL |x| (QREFELT |$| 11))) + +(DEFUN |URAGG-;elt;ArestA;3| (|x| G84614 |$|) + (SPADCALL |x| (QREFELT |$| 14))) + +(DEFUN |URAGG-;second;AS;4| (|x| |$|) + (SPADCALL (SPADCALL |x| (QREFELT |$| 14)) (QREFELT |$| 8))) + +(DEFUN |URAGG-;third;AS;5| (|x| |$|) + (SPADCALL + (SPADCALL (SPADCALL |x| (QREFELT |$| 14)) (QREFELT |$| 14)) + (QREFELT |$| 8))) + +(DEFUN |URAGG-;cyclic?;AB;6| (|x| |$|) + (COND + ((OR + (SPADCALL |x| (QREFELT |$| 20)) + (SPADCALL (|URAGG-;findCycle| |x| |$|) (QREFELT |$| 20))) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + +(DEFUN |URAGG-;last;AS;7| (|x| |$|) + (SPADCALL (SPADCALL |x| (QREFELT |$| 22)) (QREFELT |$| 8))) + +(DEFUN |URAGG-;nodes;AL;8| (|x| |$|) + (PROG (|l|) + (RETURN + (SEQ + (LETT |l| NIL |URAGG-;nodes;AL;8|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |x| (QREFELT |$| 20)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (LETT |l| (CONS |x| |l|) |URAGG-;nodes;AL;8|) + (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;nodes;AL;8|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT (NREVERSE |l|)))))) + +(DEFUN |URAGG-;children;AL;9| (|x| |$|) + (PROG (|l|) + (RETURN + (SEQ + (LETT |l| NIL |URAGG-;children;AL;9|) + (EXIT + (COND + ((SPADCALL |x| (QREFELT |$| 20)) |l|) + ((QUOTE T) (CONS (SPADCALL |x| (QREFELT |$| 14)) |l|)))))))) + +(DEFUN |URAGG-;leaf?;AB;10| (|x| |$|) + (SPADCALL |x| (QREFELT |$| 20))) + +(DEFUN |URAGG-;value;AS;11| (|x| |$|) + (COND + ((SPADCALL |x| (QREFELT |$| 20)) (|error| "value of empty object")) + ((QUOTE T) (SPADCALL |x| (QREFELT |$| 8))))) + +(DEFUN |URAGG-;less?;ANniB;12| (|l| |n| |$|) + (PROG (|i|) + (RETURN + (SEQ + (LETT |i| |n| |URAGG-;less?;ANniB;12|) + (SEQ + G190 + (COND + ((NULL + (COND + ((|<| 0 |i|) + (COND + ((SPADCALL |l| (QREFELT |$| 20)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + ((QUOTE T) (QUOTE NIL)))) + (GO G191))) + (SEQ + (LETT |l| (SPADCALL |l| (QREFELT |$| 14)) |URAGG-;less?;ANniB;12|) + (EXIT (LETT |i| (|-| |i| 1) |URAGG-;less?;ANniB;12|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT (|<| 0 |i|)))))) + +(DEFUN |URAGG-;more?;ANniB;13| (|l| |n| |$|) + (PROG (|i|) + (RETURN + (SEQ + (LETT |i| |n| |URAGG-;more?;ANniB;13|) + (SEQ + G190 + (COND + ((NULL + (COND + ((|<| 0 |i|) + (COND + ((SPADCALL |l| (QREFELT |$| 20)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + ((QUOTE T) (QUOTE NIL)))) + (GO G191))) + (SEQ + (LETT |l| (SPADCALL |l| (QREFELT |$| 14)) |URAGG-;more?;ANniB;13|) + (EXIT (LETT |i| (|-| |i| 1) |URAGG-;more?;ANniB;13|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT + (COND + ((ZEROP |i|) + (COND + ((SPADCALL |l| (QREFELT |$| 20)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + ((QUOTE T) (QUOTE NIL)))))))) + +(DEFUN |URAGG-;size?;ANniB;14| (|l| |n| |$|) + (PROG (|i|) + (RETURN + (SEQ + (LETT |i| |n| |URAGG-;size?;ANniB;14|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |l| (QREFELT |$| 20)) (QUOTE NIL)) + ((QUOTE T) (|<| 0 |i|)))) + (GO G191))) + (SEQ + (LETT |l| (SPADCALL |l| (QREFELT |$| 14)) |URAGG-;size?;ANniB;14|) + (EXIT (LETT |i| (|-| |i| 1) |URAGG-;size?;ANniB;14|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT + (COND + ((SPADCALL |l| (QREFELT |$| 20)) (ZEROP |i|)) + ((QUOTE T) (QUOTE NIL)))))))) + +(DEFUN |URAGG-;#;ANni;15| (|x| |$|) + (PROG (|k|) + (RETURN + (SEQ + (SEQ + (LETT |k| 0 |URAGG-;#;ANni;15|) + G190 + (COND + ((NULL + (COND + ((SPADCALL |x| (QREFELT |$| 20)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (COND + ((EQL |k| 1000) + (COND + ((SPADCALL |x| (QREFELT |$| 33)) (EXIT (|error| "cyclic list")))))) + (EXIT (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;#;ANni;15|))) + (LETT |k| (QSADD1 |k|) |URAGG-;#;ANni;15|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT |k|))))) + +(DEFUN |URAGG-;tail;2A;16| (|x| |$|) + (PROG (|k| |y|) + (RETURN + (SEQ + (COND + ((SPADCALL |x| (QREFELT |$| 20)) (|error| "empty list")) + ((QUOTE T) + (SEQ + (LETT |y| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;tail;2A;16|) + (SEQ + (LETT |k| 0 |URAGG-;tail;2A;16|) + G190 + (COND + ((NULL + (COND + ((SPADCALL |y| (QREFELT |$| 20)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (COND + ((EQL |k| 1000) + (COND + ((SPADCALL |x| (QREFELT |$| 33)) + (EXIT (|error| "cyclic list")))))) + (EXIT + (LETT |y| + (SPADCALL (LETT |x| |y| |URAGG-;tail;2A;16|) (QREFELT |$| 14)) + |URAGG-;tail;2A;16|))) + (LETT |k| (QSADD1 |k|) |URAGG-;tail;2A;16|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT |x|)))))))) + +(DEFUN |URAGG-;findCycle| (|x| |$|) + (PROG (#1=#:G84667 |y|) + (RETURN + (SEQ + (EXIT + (SEQ + (LETT |y| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;findCycle|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |y| (QREFELT |$| 20)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (COND + ((SPADCALL |x| |y| (QREFELT |$| 36)) + (PROGN (LETT #1# |x| |URAGG-;findCycle|) (GO #1#)))) + (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;findCycle|) + (LETT |y| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;findCycle|) + (COND + ((SPADCALL |y| (QREFELT |$| 20)) + (PROGN (LETT #1# |y| |URAGG-;findCycle|) (GO #1#)))) + (COND + ((SPADCALL |x| |y| (QREFELT |$| 36)) + (PROGN (LETT #1# |y| |URAGG-;findCycle|) (GO #1#)))) + (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;findCycle|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |y|))) + #1# + (EXIT #1#))))) + +(DEFUN |URAGG-;cycleTail;2A;18| (|x| |$|) + (PROG (|y| |z|) + (RETURN + (SEQ + (COND + ((SPADCALL + (LETT |y| + (LETT |x| (SPADCALL |x| (QREFELT |$| 37)) |URAGG-;cycleTail;2A;18|) + |URAGG-;cycleTail;2A;18|) + (QREFELT |$| 20)) + |x|) + ((QUOTE T) + (SEQ + (LETT |z| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;cycleTail;2A;18|) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |x| |z| (QREFELT |$| 36)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (LETT |y| |z| |URAGG-;cycleTail;2A;18|) + (EXIT + (LETT |z| + (SPADCALL |z| (QREFELT |$| 14)) |URAGG-;cycleTail;2A;18|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |y|)))))))) + +(DEFUN |URAGG-;cycleEntry;2A;19| (|x| |$|) + (PROG (|l| |z| |k| |y|) + (RETURN + (SEQ + (COND + ((SPADCALL |x| (QREFELT |$| 20)) |x|) + ((SPADCALL + (LETT |y| (|URAGG-;findCycle| |x| |$|) |URAGG-;cycleEntry;2A;19|) + (QREFELT |$| 20)) + |y|) + ((QUOTE T) + (SEQ + (LETT |z| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;cycleEntry;2A;19|) + (SEQ + (LETT |l| 1 |URAGG-;cycleEntry;2A;19|) + G190 + (COND + ((NULL + (COND + ((SPADCALL |y| |z| (QREFELT |$| 36)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (LETT |z| + (SPADCALL |z| (QREFELT |$| 14)) |URAGG-;cycleEntry;2A;19|))) + (LETT |l| + (QSADD1 |l|) |URAGG-;cycleEntry;2A;19|) (GO G190) G191 (EXIT NIL)) + (LETT |y| |x| |URAGG-;cycleEntry;2A;19|) + (SEQ + (LETT |k| 1 |URAGG-;cycleEntry;2A;19|) + G190 + (COND ((QSGREATERP |k| |l|) (GO G191))) + (SEQ + (EXIT + (LETT |y| + (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;cycleEntry;2A;19|))) + (LETT |k| (QSADD1 |k|) |URAGG-;cycleEntry;2A;19|) + (GO G190) + G191 + (EXIT NIL)) + (SEQ + G190 + (COND + ((NULL + (COND + ((SPADCALL |x| |y| (QREFELT |$| 36)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;cycleEntry;2A;19|) + (EXIT + (LETT |y| + (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;cycleEntry;2A;19|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (EXIT |x|)))))))) + +(DEFUN |URAGG-;cycleLength;ANni;20| (|x| |$|) + (PROG (|k| |y|) + (RETURN + (SEQ + (COND + ((OR + (SPADCALL |x| (QREFELT |$| 20)) + (SPADCALL + (LETT |x| (|URAGG-;findCycle| |x| |$|) |URAGG-;cycleLength;ANni;20|) + (QREFELT |$| 20))) + 0) + ((QUOTE T) + (SEQ + (LETT |y| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;cycleLength;ANni;20|) + (SEQ + (LETT |k| 1 |URAGG-;cycleLength;ANni;20|) + G190 + (COND + ((NULL + (COND + ((SPADCALL |x| |y| (QREFELT |$| 36)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (LETT |y| + (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;cycleLength;ANni;20|))) + (LETT |k| (QSADD1 |k|) |URAGG-;cycleLength;ANni;20|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT |k|)))))))) + +(DEFUN |URAGG-;rest;ANniA;21| (|x| |n| |$|) + (PROG (|i|) + (RETURN + (SEQ + (SEQ + (LETT |i| 1 |URAGG-;rest;ANniA;21|) + G190 + (COND ((QSGREATERP |i| |n|) (GO G191))) + (SEQ + (EXIT + (COND + ((SPADCALL |x| (QREFELT |$| 20)) (|error| "Index out of range")) + ((QUOTE T) + (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;rest;ANniA;21|))))) + (LETT |i| (QSADD1 |i|) |URAGG-;rest;ANniA;21|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT |x|))))) + +(DEFUN |URAGG-;last;ANniA;22| (|x| |n| |$|) + (PROG (|m| #1=#:G84694) + (RETURN + (SEQ + (LETT |m| (SPADCALL |x| (QREFELT |$| 42)) |URAGG-;last;ANniA;22|) + (EXIT + (COND + ((|<| |m| |n|) (|error| "index out of range")) + ((QUOTE T) + (SPADCALL + (SPADCALL |x| + (PROG1 + (LETT #1# (|-| |m| |n|) |URAGG-;last;ANniA;22|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 43)) + (QREFELT |$| 44))))))))) + +(DEFUN |URAGG-;=;2AB;23| (|x| |y| |$|) + (PROG (|k| #1=#:G84705) + (RETURN + (SEQ + (EXIT + (COND + ((SPADCALL |x| |y| (QREFELT |$| 36)) (QUOTE T)) + ((QUOTE T) + (SEQ + (SEQ + (LETT |k| 0 |URAGG-;=;2AB;23|) + G190 + (COND + ((NULL + (COND + ((OR + (SPADCALL |x| (QREFELT |$| 20)) + (SPADCALL |y| (QREFELT |$| 20))) + (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (COND + ((EQL |k| 1000) + (COND + ((SPADCALL |x| (QREFELT |$| 33)) + (EXIT (|error| "cyclic list")))))) + (COND + ((NULL + (SPADCALL + (SPADCALL |x| (QREFELT |$| 8)) + (SPADCALL |y| (QREFELT |$| 8)) + (QREFELT |$| 46))) + (EXIT (PROGN (LETT #1# (QUOTE NIL) |URAGG-;=;2AB;23|) (GO #1#))))) + (LETT |x| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;=;2AB;23|) + (EXIT (LETT |y| (SPADCALL |y| (QREFELT |$| 14)) |URAGG-;=;2AB;23|))) + (LETT |k| (QSADD1 |k|) |URAGG-;=;2AB;23|) + (GO G190) + G191 + (EXIT NIL)) + (EXIT + (COND + ((SPADCALL |x| (QREFELT |$| 20)) (SPADCALL |y| (QREFELT |$| 20))) + ((QUOTE T) (QUOTE NIL)))))))) + #1# + (EXIT #1#))))) + +(DEFUN |URAGG-;node?;2AB;24| (|u| |v| |$|) + (PROG (|k| #1=#:G84711) + (RETURN + (SEQ + (EXIT + (SEQ + (SEQ + (LETT |k| 0 |URAGG-;node?;2AB;24|) + G190 + (COND + ((NULL + (COND + ((SPADCALL |v| (QREFELT |$| 20)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (EXIT + (COND + ((SPADCALL |u| |v| (QREFELT |$| 48)) + (PROGN (LETT #1# (QUOTE T) |URAGG-;node?;2AB;24|) (GO #1#))) + ((QUOTE T) + (SEQ + (COND + ((EQL |k| 1000) + (COND + ((SPADCALL |v| (QREFELT |$| 33)) + (EXIT (|error| "cyclic list")))))) + (EXIT + (LETT |v| + (SPADCALL |v| (QREFELT |$| 14)) + |URAGG-;node?;2AB;24|))))))) + (LETT |k| (QSADD1 |k|) |URAGG-;node?;2AB;24|) (GO G190) G191 (EXIT NIL)) + (EXIT (SPADCALL |u| |v| (QREFELT |$| 48))))) + #1# (EXIT #1#))))) + +(DEFUN |URAGG-;setelt;Afirst2S;25| (|x| G84713 |a| |$|) + (SPADCALL |x| |a| (QREFELT |$| 50))) + +(DEFUN |URAGG-;setelt;Alast2S;26| (|x| G84715 |a| |$|) + (SPADCALL |x| |a| (QREFELT |$| 52))) + +(DEFUN |URAGG-;setelt;Arest2A;27| (|x| G84717 |a| |$|) + (SPADCALL |x| |a| (QREFELT |$| 54))) + +(DEFUN |URAGG-;concat;3A;28| (|x| |y| |$|) + (SPADCALL (SPADCALL |x| (QREFELT |$| 44)) |y| (QREFELT |$| 56))) + +(DEFUN |URAGG-;setlast!;A2S;29| (|x| |s| |$|) + (SEQ + (COND + ((SPADCALL |x| (QREFELT |$| 20)) (|error| "setlast: empty list")) + ((QUOTE T) + (SEQ + (SPADCALL (SPADCALL |x| (QREFELT |$| 22)) |s| (QREFELT |$| 50)) + (EXIT |s|)))))) + +(DEFUN |URAGG-;setchildren!;ALA;30| (|u| |lv| |$|) + (COND + ((EQL (LENGTH |lv|) 1) (SPADCALL |u| (|SPADfirst| |lv|) (QREFELT |$| 54))) + ((QUOTE T) (|error| "wrong number of children specified")))) + +(DEFUN |URAGG-;setvalue!;A2S;31| (|u| |s| |$|) + (SPADCALL |u| |s| (QREFELT |$| 50))) + +(DEFUN |URAGG-;split!;AIA;32| (|p| |n| |$|) + (PROG (#1=#:G84725 |q|) + (RETURN + (SEQ + (COND + ((|<| |n| 1) (|error| "index out of range")) + ((QUOTE T) + (SEQ + (LETT |p| + (SPADCALL |p| + (PROG1 + (LETT #1# (|-| |n| 1) |URAGG-;split!;AIA;32|) + (|check-subtype| (|>=| #1# 0) (QUOTE (|NonNegativeInteger|)) #1#)) + (QREFELT |$| 43)) + |URAGG-;split!;AIA;32|) + (LETT |q| (SPADCALL |p| (QREFELT |$| 14)) |URAGG-;split!;AIA;32|) + (SPADCALL |p| (SPADCALL (QREFELT |$| 61)) (QREFELT |$| 54)) + (EXIT |q|)))))))) + +(DEFUN |URAGG-;cycleSplit!;2A;33| (|x| |$|) + (PROG (|y| |z|) + (RETURN + (SEQ + (COND + ((OR + (SPADCALL + (LETT |y| (SPADCALL |x| (QREFELT |$| 37)) |URAGG-;cycleSplit!;2A;33|) + (QREFELT |$| 20)) + (SPADCALL |x| |y| (QREFELT |$| 36))) |y|) + ((QUOTE T) + (SEQ + (LETT |z| (SPADCALL |x| (QREFELT |$| 14)) |URAGG-;cycleSplit!;2A;33|) + (SEQ G190 + (COND + ((NULL + (COND + ((SPADCALL |z| |y| (QREFELT |$| 36)) (QUOTE NIL)) + ((QUOTE T) (QUOTE T)))) + (GO G191))) + (SEQ + (LETT |x| |z| |URAGG-;cycleSplit!;2A;33|) + (EXIT + (LETT |z| + (SPADCALL |z| (QREFELT |$| 14)) |URAGG-;cycleSplit!;2A;33|))) + NIL + (GO G190) + G191 + (EXIT NIL)) + (SPADCALL |x| + (SPADCALL (QREFELT |$| 61)) (QREFELT |$| 54)) (EXIT |y|)))))))) + +(DEFUN |UnaryRecursiveAggregate&| (|#1| |#2|) + (PROG (|DV$1| |DV$2| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|UnaryRecursiveAggregate&|)) + (LETT |DV$2| (|devaluate| |#2|) . #1#) + (LETT |dv$| (LIST (QUOTE |UnaryRecursiveAggregate&|) |DV$1| |DV$2|) . #1#) + (LETT |$| (GETREFV 66) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 + (LETT |pv$| + (|buildPredVector| 0 0 + (LIST (|HasAttribute| |#1| (QUOTE |shallowlyMutable|)))) + . #1#)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + (QSETREFV |$| 7 |#2|) + (COND + ((|HasAttribute| |#1| (QUOTE |finiteAggregate|)) + (QSETREFV |$| 45 + (CONS (|dispatchFunction| |URAGG-;last;ANniA;22|) |$|)))) + (COND + ((|HasCategory| |#2| (QUOTE (|SetCategory|))) + (PROGN + (QSETREFV |$| 47 (CONS (|dispatchFunction| |URAGG-;=;2AB;23|) |$|)) + (QSETREFV |$| 49 + (CONS (|dispatchFunction| |URAGG-;node?;2AB;24|) |$|))))) + (COND + ((|testBitVector| |pv$| 1) + (PROGN + (QSETREFV |$| 51 + (CONS (|dispatchFunction| |URAGG-;setelt;Afirst2S;25|) |$|)) + (QSETREFV |$| 53 + (CONS (|dispatchFunction| |URAGG-;setelt;Alast2S;26|) |$|)) + (QSETREFV |$| 55 + (CONS (|dispatchFunction| |URAGG-;setelt;Arest2A;27|) |$|)) + (QSETREFV |$| 57 + (CONS (|dispatchFunction| |URAGG-;concat;3A;28|) |$|)) + (QSETREFV |$| 58 + (CONS (|dispatchFunction| |URAGG-;setlast!;A2S;29|) |$|)) + (QSETREFV |$| 59 + (CONS (|dispatchFunction| |URAGG-;setchildren!;ALA;30|) |$|)) + (QSETREFV |$| 60 + (CONS (|dispatchFunction| |URAGG-;setvalue!;A2S;31|) |$|)) + (QSETREFV |$| 63 + (CONS (|dispatchFunction| |URAGG-;split!;AIA;32|) |$|)) + (QSETREFV |$| 64 + (CONS (|dispatchFunction| |URAGG-;cycleSplit!;2A;33|) |$|))))) + |$|)))) + +(MAKEPROP + (QUOTE |UnaryRecursiveAggregate&|) + (QUOTE |infovec|) + (LIST + (QUOTE #(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) + (0 . |first|) (QUOTE "first") |URAGG-;elt;AfirstS;1| (5 . |last|) + (QUOTE "last") |URAGG-;elt;AlastS;2| (10 . |rest|) (QUOTE "rest") + |URAGG-;elt;ArestA;3| |URAGG-;second;AS;4| |URAGG-;third;AS;5| + (|Boolean|) (15 . |empty?|) |URAGG-;cyclic?;AB;6| (20 . |tail|) + |URAGG-;last;AS;7| (|List| |$|) |URAGG-;nodes;AL;8| + |URAGG-;children;AL;9| |URAGG-;leaf?;AB;10| |URAGG-;value;AS;11| + (|NonNegativeInteger|) |URAGG-;less?;ANniB;12| |URAGG-;more?;ANniB;13| + |URAGG-;size?;ANniB;14| (25 . |cyclic?|) |URAGG-;#;ANni;15| + |URAGG-;tail;2A;16| (30 . |eq?|) (36 . |cycleEntry|) + |URAGG-;cycleTail;2A;18| |URAGG-;cycleEntry;2A;19| + |URAGG-;cycleLength;ANni;20| |URAGG-;rest;ANniA;21| (41 . |#|) + (46 . |rest|) (52 . |copy|) (57 . |last|) (63 . |=|) (69 . |=|) + (75 . |=|) (81 . |node?|) (87 . |setfirst!|) (93 . |setelt|) + (100 . |setlast!|) (106 . |setelt|) (113 . |setrest!|) + (119 . |setelt|) (126 . |concat!|) (132 . |concat|) (138 . |setlast!|) + (144 . |setchildren!|) (150 . |setvalue!|) (156 . |empty|) (|Integer|) + (160 . |split!|) (166 . |cycleSplit!|) (QUOTE "value"))) + (QUOTE #(|value| 171 |third| 176 |tail| 181 |split!| 186 |size?| 192 + |setvalue!| 198 |setlast!| 204 |setelt| 210 |setchildren!| 231 |second| + 237 |rest| 242 |nodes| 248 |node?| 253 |more?| 259 |less?| 265 |leaf?| + 271 |last| 276 |elt| 287 |cyclic?| 305 |cycleTail| 310 |cycleSplit!| + 315 |cycleLength| 320 |cycleEntry| 325 |concat| 330 |children| 336 |=| + 341 |#| 347)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS + (QUOTE #()) + (CONS + (QUOTE #()) + (|makeByteWordVec2| 64 (QUOTE (1 6 7 0 8 1 6 7 0 11 1 6 0 0 14 1 6 + 19 0 20 1 6 0 0 22 1 6 19 0 33 2 6 19 0 0 36 1 6 0 0 37 1 6 29 0 + 42 2 6 0 0 29 43 1 6 0 0 44 2 0 0 0 29 45 2 7 19 0 0 46 2 0 19 0 + 0 47 2 6 19 0 0 48 2 0 19 0 0 49 2 6 7 0 7 50 3 0 7 0 9 7 51 2 6 + 7 0 7 52 3 0 7 0 12 7 53 2 6 0 0 0 54 3 0 0 0 15 0 55 2 6 0 0 0 56 + 2 0 0 0 0 57 2 0 7 0 7 58 2 0 0 0 24 59 2 0 7 0 7 60 0 6 0 61 2 0 + 0 0 62 63 1 0 0 0 64 1 0 7 0 28 1 0 7 0 18 1 0 0 0 35 2 0 0 0 62 63 + 2 0 19 0 29 32 2 0 7 0 7 60 2 0 7 0 7 58 3 0 7 0 12 7 53 3 0 0 0 15 + 0 55 3 0 7 0 9 7 51 2 0 0 0 24 59 1 0 7 0 17 2 0 0 0 29 41 1 0 24 0 + 25 2 0 19 0 0 49 2 0 19 0 29 31 2 0 19 0 29 30 1 0 19 0 27 2 0 0 0 + 29 45 1 0 7 0 23 2 0 7 0 12 13 2 0 0 0 15 16 2 0 7 0 9 10 1 0 19 0 + 21 1 0 0 0 38 1 0 0 0 64 1 0 29 0 40 1 0 0 0 39 2 0 0 0 0 57 1 0 24 + 0 26 2 0 19 0 0 47 1 0 29 0 34)))))) + (QUOTE |lookupComplete|))) @ <>= <> diff --git a/changelog b/changelog index 283d330..67e1cd4 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,4 @@ +20080908 tpd books/bookvol10 latex cleanup 20080906 tpd src/algebra/aggcat.spad removed, merged into bookvol10 20080906 tpd src/algebra/Makefile merge aggcat.spad 20080906 tpd src/Makefile merge aggcat.spad