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 ! 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 --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---