aboutsummaryrefslogtreecommitdiff
path: root/src/boot/ast.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-04-24 17:30:12 +0000
committerdos-reis <gdr@axiomatics.org>2011-04-24 17:30:12 +0000
commitb471fd6f3716d3e2c50e667f4d96efe38f8e31b5 (patch)
tree38085067cdb3037bb98018af19c83584e99cd907 /src/boot/ast.boot
parent8fc8aaeaf79472ff9cfd9b9fb3eeb17379c7d9bd (diff)
downloadopen-axiom-b471fd6f3716d3e2c50e667f4d96efe38f8e31b5.tar.gz
Tidy append redunction
Diffstat (limited to 'src/boot/ast.boot')
-rw-r--r--src/boot/ast.boot5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index afff0cf2..5d1893be 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -368,7 +368,10 @@ bfDTuple x ==
["DTUPLE",x]
bfCollect(y,itl) ==
- y is ["COLON",a] => bfListReduce('APPEND,['reverse,a],itl)
+ y is ["COLON",a] =>
+ a is ['CONS,:.] or a is ['LIST,:.] =>
+ bfDoCollect(a,itl,'lastNode,nil)
+ bfListReduce('APPEND,['reverse,a],itl)
y is ["TUPLE",:.] =>
bfListReduce('APPEND,['reverse,bfConstruct y],itl)
bfDoCollect(['CONS,y,'NIL],itl,'CDR,nil)