aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-map.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-10-04 00:01:48 +0000
committerdos-reis <gdr@axiomatics.org>2011-10-04 00:01:48 +0000
commit0204a2e9c993ee408d769cc6e2f91506b5699c81 (patch)
treed89e0a82d362e311218ce93d54b73454de6d8384 /src/interp/i-map.boot
parent3be2028e7626877113e9c63530b5aeb982dc337a (diff)
downloadopen-axiom-0204a2e9c993ee408d769cc6e2f91506b5699c81.tar.gz
* boot/utility.boot (symbolAssoc): Rename from assocSymbol. Export.
* interp/functor.boot: Remove getAbbreviation, mkAbbrev, addsuffix. * interp/sys-utility.boot (symbolAssoc): Remove as redundant. (scalarTarget): New. * interp/bc-matrix.boot: Use symbolTarget instead of symbolLassoc. * interp/br-con.boot: Use QLASSQ instead of symbolTarget. * interp/br-data.boot: Likewise. * interp/br-op1.boot: Likewise. * interp/br-prof.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/br-search.boot: Likewise. * interp/buildom.boot: Likewise. * interp/c-doc.boot: Likewise. * interp/c-util.boot: Likewise. * interp/cattable.boot: Likewise. * interp/clam.boot: Likewise. * interp/define.boot: Likewise. * interp/format.boot: Likewise. * interp/g-timer.boot: Likewise. * interp/g-util.boot: Likewise. * interp/ht-util.boot: Likewise. * interp/htsetvar.boot: Likewise. * interp/i-intern.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-object.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/profile.boot: Likewise. * interp/trace.boot: Likewise. * interp/vmlisp.lisp (assoc): Tidy.
Diffstat (limited to 'src/interp/i-map.boot')
-rw-r--r--src/interp/i-map.boot19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/interp/i-map.boot b/src/interp/i-map.boot
index 8261ac76..dcdf4cf8 100644
--- a/src/interp/i-map.boot
+++ b/src/interp/i-map.boot
@@ -786,13 +786,12 @@ mapRecurDepth(opName,opList,body) ==
-- expanding the bodies of maps called in body
body isnt [.,:.] => 0
body is [op,:argl] =>
- argc:=
+ argc :=
argl isnt [.,:.] => 0
- argl => "MAX"/[mapRecurDepth(opName,opList,x) for x in argl]
- 0
- symbolMember?(op,opList) => argc
- op=opName => 1 + argc
- (obj := get(op,'value,$e)) and objVal obj is ["%Map",:mapDef] =>
+ "MAX"/[mapRecurDepth(opName,opList,x) for x in argl]
+ ident? op and symbolMember?(op,opList) => argc
+ ident? op and op = opName => 1 + argc
+ ident? op and (obj := get(op,'value,$e)) and objVal obj is ["%Map",:mapDef] =>
mapRecurDepth(opName,[op,:opList],getMapBody(op,mapDef))
+ argc
argc
@@ -895,15 +894,15 @@ nonRecursivePart(opName, funBody) ==
expandRecursiveBody(alreadyExpanded, body) ==
-- replaces calls to other maps with their bodies
body isnt [.,:.] =>
- (obj := get(body,'value,$e)) and objVal obj is ["%Map",:mapDef] and
+ ident? body and (obj := get(body,'value,$e)) and objVal obj is ["%Map",:mapDef] and
((numMapArgs mapDef) = 0) => getMapBody(body,mapDef)
body
body is [op,:argl] =>
- not symbolMember?(op,alreadyExpanded) =>
+ ident? op and not symbolMember?(op,alreadyExpanded) =>
(obj := get(op,'value,$e)) and objVal obj is ["%Map",:mapDef] =>
- newBody:= getMapBody(op,mapDef)
+ newBody := getMapBody(op,mapDef)
for arg in argl for var in $FormalMapVariableList repeat
- newBody:=MSUBST(arg,var,newBody)
+ newBody := substitute(arg,var,newBody)
expandRecursiveBody([op,:alreadyExpanded],newBody)
[op,:[expandRecursiveBody(alreadyExpanded,arg) for arg in argl]]
[op,:[expandRecursiveBody(alreadyExpanded,arg) for arg in argl]]