diff options
author | dos-reis <gdr@axiomatics.org> | 2011-03-09 06:58:27 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-03-09 06:58:27 +0000 |
commit | 010633b20de9643ac34409552bbbb4366038ecf7 (patch) | |
tree | 414556ed7a3c8460375f47eaa247bea495296901 /src/interp | |
parent | 5a879844f45fd5b566ef61bb3cc9b2a2a0a5c3a7 (diff) | |
download | open-axiom-010633b20de9643ac34409552bbbb4366038ecf7.tar.gz |
* interp/g-opt.boot (semiSimpleRelativeTo?): Consider conditionals.
Diffstat (limited to 'src/interp')
-rw-r--r-- | src/interp/g-opt.boot | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot index ad5d7b84..b7a72aca 100644 --- a/src/interp/g-opt.boot +++ b/src/interp/g-opt.boot @@ -463,8 +463,11 @@ $simpleVMoperators == ++ to the list of operators `ops'. semiSimpleRelativeTo?(form,ops) == atomic? form => true - form isnt [op,:args] or not symbol? op or not MEMQ(op,ops) => false - and/[semiSimpleRelativeTo?(f,ops) for f in args] + not symbol?(form.op) or not MEMQ(form.op,ops) => false + form.op is '%when => + and/[sideEffectFree? p and semiSimpleRelativeTo?(c,ops) + for [p,c] in form.args] + and/[semiSimpleRelativeTo?(f,ops) for f in form.args] ++ Return true if `form' os a side-effect free form. sideEffectFree? form == |