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.

Reply via email to