I am struggling with dealing with Expressions. For most sake and purposes I can find a fix and solve my small problems, but I never feel very assured.
Maybe you can give me some pointers. The question that I originally would have liked to ask was: is there a "parse tree" object available for elements of type, say, Expression(Integer). As there doesn't seem to exist a parse tree object, I should ask a different question: how are you analysing an Expression? While browsing through the documentation I found many functions that could be usable for parsing, but I wasn't very lucky in using them. For example, there is a function isMult(p) which is supposed to return [n,x] if p=n*x if n<>0. For a Symbol x and an Integer n isMult(n*x) returns [n,x], but for another Symbol y isMult(y*x) returns "failed". Not exactly analoguously isPower(x**y) returns [x**y,1], whereas isPower(x**10) returns [x,10]. isExpt behaves like isPower, where isTimes differs from isMult and returns all factors of a product, i.e. isTimes(x*y*z)=[x,y,z]. Whereas isPlus((x+y+z*y) returns [y z,y,x] isTimes((x+y)*z) returns "failed" instead of the exp. Somehow I don't understand the inner logic of these operations. Any hints for how to proceed are greatly welcome. Hans Peter _______________________________________________ Axiom-developer mailing list Axiom-developer@nongnu.org http://lists.nongnu.org/mailman/listinfo/axiom-developer