I am trying to summarize: - say that sympy will never support "named objects that must have args" OK, if we give up on obj.func(*obj.args)==obj. We do not want to do it because it is a useful invariant. Example where doing it may be harmful is MatrixSymbol(name, dim1, dim2) where we may want to subs/replace dim1. I am considering this option dead.
- use Symbol when we need name strings Yes, if it is not Symbol but a new SymbolName class. Adds complexity (Why should one use SymbolName when actually recursing over it seems like nonsense? Why not just str? The only answer to these question that I can think about is "otherwise there is too much over sympy that must be corrected". Ronan, I would appreciate your point of view on these questions.) - redefine what an atom is and correct each failing algorithm one by one Actually using strings instead of Symbols or SymbolNames. The **only** drawback is that it require fixing algorithms all over sympy. However these fixes can be done step by step without breaking anything. Is there another drawback? It would permit obj.func(*obj.args)==obj even for Symbols, as they will be able to keep their name strings in their 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.
