123456789101112131415161718192021222324252627282930 |
- module subs4q; % Routines for matching quotients.
- % Author: Anthony C. Hearn.
- % modification to more general quotient matching: Herbert Melenk
- % Copyright (c) 1992 RAND. All rights reserved.
- symbolic procedure subs4q u;
- % U is a standard quotient,
- % Value is a standard quotient with all quotient substitutions made.
- begin scalar x,w,q,d;
- if null(x:=get('slash,'opmtch)) then return u;
- w := prepsq u;
- remprop('slash,'opmtch); % to prevent endless recursion.
- put('slash!*,'opmtch,x);
- while w and eqcar(q:=w,'quotient) do
- <<w:=opmtch ('slash!* . cdr w) or
- smemq('minus,caddr w) and
- opmtch{'slash!*,reval{'minus,cadr w},
- reval{'minus,caddr w}};
- d:=d or w>>;
- u:= if d then simp!* q else u;
- put('slash,'opmtch,x);
- return u;
- end;
- endmodule;
- end;
|