On Mon, Nov 7, 2011 at 1:05 PM, kcrisman <kcris...@gmail.com> wrote: > > > On Nov 7, 3:00 pm, William Stein <wst...@gmail.com> wrote: >> Hi, >> >> Twice in the last day I've hit this deprecation warning due to making >> a stupid typo: >> >> sage: d(N) = (1/2)*(N^2-1)(N^2-N)/(N-1) # contains stupid typo >> /Users/wstein/sage/install/current/local/lib/python2.6/site-packages/IPytho >> n/iplib.py:2073: >> DeprecationWarning: Substitution using function-call syntax and >> unnamed arguments is deprecated and will be removed from a future >> release of Sage; you can use named arguments instead, like EXPR(x=..., >> y=...) >> exec code_obj in self.user_global_ns, self.user_ns >> >> I've been trying to get rid of this mistake in symbolic calculus since >> probably 2007. I say we get rid of it soon, e.g., in sage-4.8 (or >> certainly in sage-5.0). It's time for it to go. > > Even though not agreed, I recognize my opinion is in the minority, and > so I've been teaching people to avoid it for at least two years in > seminars/workshops. > > But because of that experience, I have a recommendation. > > If you open a ticket (or find one) for this, I think that we should > definitely put some easy-to-find documentation (maybe in the top-level > calculus and symbolics pages) that shows how to change "bad old" code, > especially in certain plotting situations, to the "new good" code > style. As well as some nice examples saying, "Until [2011,2012] we > used this, but it no longer works" (with doctest). > > This is one of those places where having the automatic testing of > sagenb-type worksheets would be really helpful, because it would > uncover the most typical (ab)use cases. My guess is there are still > people using old ones. For instance, I hadn't taught a particular > course in two years, and discovered lots of them in my plot interacts > - where you need to say > > @interact > def _(f=x^2) > g(x) = f > plot(g) > > and that is a little weird, but > > plot(f) > > I think causes this error. (? if I recall correctly - it was > something along these lines but I don't remember for sure) > > Anyway, just a recommendation.
We could make plot continue to work, even after removing calling, by testing to see if f has exactly one symbolic variable, and if so call it. There's a huge difference between a mistake like this: sage: d(N) = (N^2-1)(N^2-N)/(N-1) # note the missing * -- should be (N^2-1)*(N^2-N)/(N-1) and something like sage: d = N^2-1 sage: plot(d) where it is clear what is intended. -- William > > - kcrisman > > -- > To post to this group, send an email to sage-devel@googlegroups.com > To unsubscribe from this group, send an email to > sage-devel+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/sage-devel > URL: http://www.sagemath.org > -- William Stein Professor of Mathematics University of Washington http://wstein.org -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org