On Thu, Feb 26, 2009 at 2:35 PM, Robert Bradshaw <rober...@math.washington.edu> wrote: > > On Feb 26, 2009, at 2:28 PM, YannLC wrote: > >> Forgive my stubborness, but you answered only half of my question :) >> do you think the following is a sane behavior? >> >> sage: var('f x') >> (f, x) >> sage: f(x+3) >> x+3 >> >> I would prefer a NotImplementedError... > > This has come up many times, and it's unclear exactly what the best > behavior should be. What about > > sage: var('x') > sage: f = x > sage: f(3) > 3
To add a little more detail here: I'm not sure you're understanding what's going on in your example. Consider this: sage: E = (x+3)*sin(x) sage: E(5) 8*sin(5) sage: E.subs(x=5) 8*sin(5) So E(5) is treated as a shorthand for E.subs(x=5). Now if we consider: sage: var('f x') (f, x) sage: f(x+3) x + 3 sage: f.subs(f=x+3) x + 3 it's the exact same thing. This causes trouble in other situations, as well; if you wanted multiplication, but you left off the '*' symbol: sage: x(x+1) x + 1 sage: x.subs(x=x+1) x + 1 I've argued before that this shorthand should be removed because it's too confusing, but I haven't managed to convince enough people, so it's still there. (The shorthand isn't there in the new, Pynac-based symbolics, so when we switch over to that system, this particular source of confusion will be gone.) Carl --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---