I agree with SYLee. All we need is just a wrapper of str. I doubt that anyone will need to manipulate with that. SymPy doesn't need to support string manipulation indeed: That's why we don't have to implement those methods.
2020년 5월 29일 금요일 오전 3시 48분 30초 UTC+9, Aaron Meurer 님의 말: > > One of the arguments I recall is that a String object would have lots > of string related methods. But string manipulation isn't really > something that SymPy as a symbolic system needs to support. > > The codegen use-case was not imagined back then. I don't think the > codegen classes should be used outside of codegen. They are designed > to represent abstract programming language concepts for generating > code. > > Aaron Meurer > > On Thu, May 28, 2020 at 1:15 AM S.Y. Lee <[email protected] <javascript:>> > wrote: > > > > I haven't been part of the discussion back then. But I am also weighted > toward having a separate string classes because > > > > 1. Symbol is actually more heavier strings because assumptions are > stored and checked against. > > > > 2. I also see that atomic String class is implemented in codegen.ast > separately, so there were some other use cases. > > > > On Tuesday, May 26, 2020 at 5:34:43 PM UTC+9, mcpl snu wrote: > >> > >> Currently, many classes in SymPy include Symbol in args to provide the > names to their instances. An example for this is sympy.vector.CoordSys3D > class. > >> > >> Although this can be a clever way to do it, I think this is wierd - > perhaps it's an abuse of using Symbol. As far as I know, SymPy's Symbol is > a scalar whose operations, e.g. addition, integration, etc... are defined. > When we say "This 3D system's name is 'C'", we don't expect that this 'C' > can be substituted, divided, or subject to any other operation. Then why > use Symbol to denote it in the first place? > >> > >> Not only this design is unnecessary, it actually raises error. Please > refer to this issue page for example > >> > >> Although there can be many ways to circumvent this issue, I think the > most simple way is to introduce String class, which wraps str and is a > subclass of Atom. > >> > >> If there is any reason to use Symbol for this purpose that I > overlooked, please leave a comment here. Thank you. > > > > -- > > You received this message because you are subscribed to the Google > Groups "sympy" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected] <javascript:>. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/0ebe7487-2be3-4286-a824-4001bbbc0b40%40googlegroups.com. > > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/93dae711-2701-4333-9e26-d04a7b85ff0f%40googlegroups.com.
