aboutsummaryrefslogtreecommitdiff
path: root/src/boot/strap/utility.clisp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-04-21 05:56:14 +0000
committerdos-reis <gdr@axiomatics.org>2011-04-21 05:56:14 +0000
commit97463cc77bbec1c33f46ceb44584a180264682c3 (patch)
tree61d9cf3e25771fbdd5de776ea989aff622684aa3 /src/boot/strap/utility.clisp
parent1ca37b944b566ef3f0479d4c2fe6895e9fbd3785 (diff)
downloadopen-axiom-97463cc77bbec1c33f46ceb44584a180264682c3.tar.gz
* boot/tokens.boot: Don't rename nreverse.
* boot/utility.boot (reverse!): Define. * boot/parser.boot: Use reverse! instead of NREVERSE. * boot/ast.boot: Generate reverse! forms instead of NREVERSE.
Diffstat (limited to 'src/boot/strap/utility.clisp')
-rw-r--r--src/boot/strap/utility.clisp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/boot/strap/utility.clisp b/src/boot/strap/utility.clisp
index dac91a2b..60df1f22 100644
--- a/src/boot/strap/utility.clisp
+++ b/src/boot/strap/utility.clisp
@@ -6,7 +6,7 @@
(PROVIDE "utility")
(EXPORT '(|objectMember?| |symbolMember?| |stringMember?| |charMember?|
- |scalarMember?| |listMember?|))
+ |scalarMember?| |listMember?| |reverse!|))
(DEFUN |objectMember?| (|x| |l|)
(COND
@@ -62,3 +62,14 @@
(T (SETQ |l| (CDR |l|)))))
(T (RETURN (EQUAL |x| |l|))))))
+(DEFUN |reverse!| (|l|)
+ (PROG (|l2| |l1|)
+ (RETURN
+ (PROGN
+ (SETQ |l1| NIL)
+ (LOOP
+ (COND
+ ((CONSP |l|) (SETQ |l2| (CDR |l|)) (RPLACD |l| |l1|)
+ (SETQ |l1| |l|) (SETQ |l| |l2|))
+ (T (RETURN |l1|))))))))
+