aboutsummaryrefslogtreecommitdiff
path: root/src/boot/ast.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/ast.boot')
-rw-r--r--src/boot/ast.boot10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index fe569735..6fef514a 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -916,13 +916,8 @@ bfMDef (op,args,body) ==
argl :=
bfTupleP args => rest args
[args]
- [gargl,sgargl,nargl,largl]:=bfGargl argl
- sb := [[i,:j] for i in nargl for j in sgargl]
- body := applySubst(sb,body)
- sb2 := [["CONS",quote i,j] for i in sgargl for j in largl]
- body := ["applySubst",["LIST",:sb2],quote body]
- lamex:= ["MLAMBDA",gargl,body]
- def:= [op,lamex]
+ lamex := ["MLAMBDA",argl,backquote(body,argl)]
+ def := [op,lamex]
[shoeComp def,:[:shoeComps bfDef1 d for d in $wheredefs]]
bfGargl argl==
@@ -1424,6 +1419,7 @@ backquote(form,params) ==
params = nil => quote form
form isnt [.,:.] =>
symbolMember?(form,params) => form
+ integer? form or string? form => form
quote form
["LIST",:[backquote(t,params) for t in form]]