diff options
author | dos-reis <gdr@axiomatics.org> | 2011-04-22 00:58:05 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-04-22 00:58:05 +0000 |
commit | b0046ba3929c513a399fd1ebb84dee1712c55a02 (patch) | |
tree | 97e562abe62305f257a27c97a59aeaed5fdd93ba /src/boot/strap/utility.clisp | |
parent | f5a47d23d57cb91b89254c7a5904baee0f004e2b (diff) | |
download | open-axiom-b0046ba3929c513a399fd1ebb84dee1712c55a02.tar.gz |
* boot/utility.boot (copyList): Define.
(append!): Likewise.
* boot/tokens.boot: Do not translate nconc.
Diffstat (limited to 'src/boot/strap/utility.clisp')
-rw-r--r-- | src/boot/strap/utility.clisp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/boot/strap/utility.clisp b/src/boot/strap/utility.clisp index 9b7dbef4..5e6003fc 100644 --- a/src/boot/strap/utility.clisp +++ b/src/boot/strap/utility.clisp @@ -7,7 +7,7 @@ (EXPORT '(|objectMember?| |symbolMember?| |stringMember?| |charMember?| |scalarMember?| |listMember?| |reverse| |reverse!| - |lastNode|)) + |lastNode| |append!| |copyList|)) (DEFUN |objectMember?| (|x| |l|) (LOOP @@ -99,3 +99,23 @@ (T (SETQ |l| |l'|)))) |l|)))) +(DEFUN |copyList| (|l|) + (PROG (|l'| |t|) + (RETURN + (COND + ((NOT (CONSP |l|)) |l|) + (T (SETQ |l'| (SETQ |t| (LIST (CAR |l|)))) + (LOOP + (PROGN + (SETQ |l| (CDR |l|)) + (COND + ((CONSP |l|) (RPLACD |t| (LIST (CAR |l|))) + (SETQ |t| (CDR |t|))) + (T (RPLACD |t| |l|) (RETURN |l'|)))))))))) + +(DEFUN |append!| (|x| |y|) + (COND + ((NULL |x|) |y|) + ((NULL |y|) |x|) + (T (RPLACD (|lastNode| |x|) |y|) |x|))) + |