> Here is some code that I think will do the trick. > > sage: def subexpressions(e): > ....: res = [] > ....: if not hasattr(e, '_operands'): > ....: return [] > ....: for op in e._operands: > ....: res.append(op) > ....: res += subexpressions(op) > ....: return res > ....: > sage: e = exp(x)+1 > sage: f = exp(x) > sage: subexpressions(e) > [e^x, exp, x, 1] > sage: f in subexpressions(e) > True
Thanks for a quick response. It doesn't work well though: sage: exp(x) in subexpressions(exp(x)+1) True sage: exp(x) in subexpressions(exp(x)) False But both should return True. Unfortunately I need this to work reliably, otherwise the algorithm will not work. Ondrej --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---