From: Barton W. <wi...@un...> - 2014-09-26 16:50:12
|
If you would like to experiment and possibly (likely) break stuff, try: (%i1) zeroa() := box('zeroa, gensym())$ (%i2) zerob() := box('zerob, gensym())$ (%i3) inf() := box('inf, gensym())$ (%i4) minf() := box('minf, gensym())$ (%i5) map('nofix, [zeroa, zerob, inf, minf])$ (%i6) box_p(e) := not mapatom(e) and is(nounify(inpart(e,0))=nounify('mlabox))$ (%i7) baz(a,b) := csign(a) = 'pos and box_p(b)$ (%i8) matchdeclare([a,b],true)$ (%i9) let(a*b, zeroa, baz, a,b); (%o9) a*b --> zeroa() where baz(a,b) (%i10) z : 7*zeroa; (%o10) 7*zeroa (%i11) z-z; (%o11) 0 (%i12) letsimp(z); (%o12) zeroa (%i13) z + zeroa; (%o13) 7*zeroa+zeroa (%i14) letsimp(%); (%o14) zeroa+zeroa (%i15) %-%; (%o15) zeroa-zeroa Don't know why that didn't simplify to zero... (%i16) expand(%,0,0); (%o16) 0 (%i17) inf - inf; (%o17) inf-inf --Barton ________________________________ |