diff options
Diffstat (limited to 'src/algebra/strap/LSAGG.lsp')
-rw-r--r-- | src/algebra/strap/LSAGG.lsp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/algebra/strap/LSAGG.lsp b/src/algebra/strap/LSAGG.lsp new file mode 100644 index 00000000..c0470689 --- /dev/null +++ b/src/algebra/strap/LSAGG.lsp @@ -0,0 +1,38 @@ + +(/VERSIONCHECK 2) + +(DEFPARAMETER |ListAggregate;CAT| 'NIL) + +(DEFPARAMETER |ListAggregate;AL| 'NIL) + +(DEFUN |ListAggregate| (#0=#:G1431) + (LET (#1=#:G1432) + (COND + ((SETQ #1# (|assoc| (|devaluate| #0#) |ListAggregate;AL|)) + (CDR #1#)) + (T (SETQ |ListAggregate;AL| + (|cons5| (CONS (|devaluate| #0#) + (SETQ #1# (|ListAggregate;| #0#))) + |ListAggregate;AL|)) + #1#)))) + +(DEFUN |ListAggregate;| (|t#1|) + (PROG (#0=#:G1430) + (RETURN + (PROG1 (LETT #0# + (|sublisV| + (PAIR '(|t#1|) (LIST (|devaluate| |t#1|))) + (COND + (|ListAggregate;CAT|) + ('T + (LETT |ListAggregate;CAT| + (|Join| (|StreamAggregate| '|t#1|) + (|FiniteLinearAggregate| + '|t#1|) + (|ExtensibleLinearAggregate| + '|t#1|) + (|mkCategory| '|domain| + '(((|list| ($ |t#1|)) T)) NIL + 'NIL NIL)) + . #1=(|ListAggregate|))))) . #1#) + (SETELT #0# 0 (LIST '|ListAggregate| (|devaluate| |t#1|))))))) |