GREAT ! Thanks for the amazing support ! I have just used Sage for one day, and I was disappointed by this side- effect. But with such an outstanding support, I'm now convinced it's the tool to use !
PC On 25 juil, 22:07, William Stein <wst...@gmail.com> wrote: > On Sat, Jul 25, 2009 at 12:31 PM, pca<pierre.carbonne...@gmail.com> wrote: > > > Dear all, > > > I have been puzzled, and annoyed, by an unexpected side-effect. It > > can be demonstrated in the notebook by the following example. It > > models the speed as distance / time, then solve for the distance, then > > evaluate the distance with different arguments: > > > var('v d t') > > equation = v == d / t > > solution = solve(equation, d, solution_dict = True) > > d_ = solution[0][d]; print d_ #-> t*v > > constants= {v: 2} > > print d_(constants, t=3) #--> 6 > > # BEWARE: the previous call has the side effect that t=3 in later > > evaluation ! > > This is *definitely* a bug in Sage. I've made this trac #6622: > > http://trac.sagemath.org/sage_trac/ticket/6622 > > Here's how to workaround it (namely, put "dict(constants)" instead of > "constants"): > > sage: var('v t') > sage: f = v*t > sage: s = {v: 2} > sage: f(dict(s), t=3) > 6 > sage: s > {v: 2} > > William > > > > > print d_(constants) #--> 6 : the side-effect is apparent here ! > > print d_ #--> t*v > > > I would expect d_(constants) to result in t*2, but instead its using a > > previous assignment of t to yield 6 ! > > > I'm using Sage for an engineering pblm, and I find it useful to > > separate constants from arguments. The side effect is thus annoying > > to me: is there any other way to evaluate a function with constants > > and arguments, without any side-effect with the arguments ? I'm new > > to this forum, so not sure if it has been raised before. Sorry if > > there is an easy answer. > > > Thanks in advance. > > PC > > -- > William Stein > Associate Professor of Mathematics > University of Washingtonhttp://wstein.org --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---