On Wed, Nov 12, 2008 at 12:20 AM, Ondrej Certik <[EMAIL PROTECTED]> wrote: > > Hi Lance! > > On Tue, Nov 11, 2008 at 7:31 PM, llarsen <[EMAIL PROTECTED]> wrote: >> >> It seems like it would be nice where possible to make the sympy syntax >> as natural as possible. One area where it seems like this could be > > Absolutely, thanks for giving us a feedback. > >> done is in substitutions. I think it would be really slick support a >> substitution syntax like the following: >> >> from sympy import * >> x,y = symbols("xy") >> f = x**2+y**2 >> >> # Substitute in x as 1 and y as 2 >> print f(x=1, y=2) >> >> Output > 5 >> >> Currently you can do this using: >> print f.subs({x:1,y:2}) >> >> However, f(x=1,y=2) is a more standard mathematical notation. It seems >> like this would be a rather trivial change. A __call__ method could be >> added to the Basic class (to make Basic objects callable as >> functions). The call method could just invoke the subs method directly >> and return the result. The subs could be modified to support the >> additional syntax: >> >> f.subs(x=1, y=2) >> >> I am interested to hear what others think, but I really like the idea >> and think it would prove convenient. > > Thanks a lot for your suggestion. This is how Sage does it -- but it > has one drawback: it only works for symbols, but not if you are > substituting for x**2 or anything more complex. I personally see this > as some kind of a hack, as a misusing of keywords arguments, > but I think we can support this syntax, even though it would only work > for symbols. I think a lot of people want this. Others, what do you > think? > > Ondrej
I have often found myself wanting to type something like this, so I'm for it. I would probably allow more things sage does, such as: sage: f = x*y sage: f(3,2) 6 sage: f(3) 3*y sage: f(x,2) 2*x sage: f(x=3) 3*y sage: f(y=2) 2*x > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sympy@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---