diff options
author | dos-reis <gdr@axiomatics.org> | 2011-04-22 18:32:46 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-04-22 18:32:46 +0000 |
commit | b825ed51bc11564e35f84a88bbb43fbe2ac51d99 (patch) | |
tree | 6a74d803f5619ec57d8a51228e0192e9df5f7689 /src/boot/strap/utility.clisp | |
parent | 32efd3b0691918cf1d662b095c653d5a0a17ff7b (diff) | |
download | open-axiom-b825ed51bc11564e35f84a88bbb43fbe2ac51d99.tar.gz |
* boot/tokens.boot: Don't translate setDifference.
* boot/initial-env.lisp (SETDIFFERNECE): Remove.
* boot/translator.boot (evalBootFile): Rename form EVAL-BOOT-FILE.
* boot/utility.boot (setDifference): Define.
* interp/unlisp.lisp (ListMemberQ?): Remove.
(ListRemoveQ): Likewise.
(AlistAssocQ): Likewise.
Diffstat (limited to 'src/boot/strap/utility.clisp')
-rw-r--r-- | src/boot/strap/utility.clisp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/boot/strap/utility.clisp b/src/boot/strap/utility.clisp index 4f9a741f..38951dd9 100644 --- a/src/boot/strap/utility.clisp +++ b/src/boot/strap/utility.clisp @@ -7,8 +7,8 @@ (EXPORT '(|objectMember?| |symbolMember?| |stringMember?| |charMember?| |scalarMember?| |listMember?| |reverse| |reverse!| - |lastNode| |append!| |copyList| |substitute| - |substitute!|)) + |lastNode| |append!| |copyList| |substitute| |substitute!| + |setDifference|)) (DEFUN |objectMember?| (|x| |l|) (LOOP @@ -142,3 +142,23 @@ (T (CONS |h| |t|)))) (T |s|))))) +(DEFUN |setDifference| (|x| |y|) + (PROG (|a| |l| |p|) + (RETURN + (COND + ((NULL |x|) NIL) + ((NULL |y|) |x|) + (T (SETQ |l| (SETQ |p| (LIST NIL))) + (LET ((|bfVar#1| |x|)) + (LOOP + (COND + ((ATOM |bfVar#1|) (RETURN NIL)) + (T (AND (CONSP |bfVar#1|) + (PROGN (SETQ |a| (CAR |bfVar#1|)) T) + (NOT (|objectMember?| |a| |y|)) + (PROGN + (RPLACD |p| (LIST |a|)) + (SETQ |p| (CDR |p|)))))) + (SETQ |bfVar#1| (CDR |bfVar#1|)))) + (CDR |l|)))))) + |