On Fri, May 9, 2008 at 9:28 AM, Marshall Hampton <[EMAIL PROTECTED]> wrote: > > I'm not sure I agree that this is a bug. After using the name "var" > in the loop, the value of var is y. y is a symbolic variable, and > when evaluated at the string "x,y" it returns "x,y"; this seems like > desirable behavior (to have string-valued functions seems OK to me). > > Or another way to put it: if the above behavior is a bug, then I think > the following would be as well: > sage: x,y = var("x,y") > sage: y(2) > 2 > > Or perhaps I am missing something. > -M. Hampton
There is an issue with the design, though it is arguable what it is. Notice that var('x') acts as the identity function irregardless of the input, where as var('x')^2 coerces its input to the SymbolicRing. sage: x = var('x') sage: x('hello world') 'hello world' sage: type(x('hello world')) <type 'str'> sage: (x^2)('hello world') hello^2*world^2 sage: type((x^2)('hello world')) <class 'sage.calculus.calculus.SymbolicArithmetic'> sage: x,y=var("x,y") I thus think the right fix would be for var('x') to also coerce its input to the symbolic ring. So, in the original question var('x,y') would give an error since: sage: SR('x,y') Traceback (most recent call last): ... TypeError: Malformed expression: x, !!! y By the way, what's up with the !!! in the error message? That looks very weird. What do you think. -- william --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---