> Are there objects that presently use this, or is it just something > that you want to do? There are potential subtle issues with this. I do not know of any such objects. I will probably not do it as it will only bring more confusion to what an atom is.
I really need help with that question. Is there a clear notion of atom in sympy? A notion that does not clash with obj.func(*obj.args)==obj? If not can we set such a definition now? How about this: Atoms may be awfully complicated object with internal structure and whatever, however for SymPy they will be the end of any recursion trees (Dummy has a counter, Symbol has a name, etc...) Non-atoms must follow these rules: - obj.func(*obj.args) == obj - evalf(srepr(obj)) == obj Atoms must follow these rules: - either subclass Atom or have no args (as in no attribute, not as in args being empty) - evalf(srepr(obj)) == obj Note that I do not propose all(isinstance(a, Basic) for a in obj.args) as a rule. Because if we have a clear notion of atom there is no problem to have non-Basic instances in args. -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
