On Fri, 07 Nov 2008 06:40:17 -0600
Jason Grout <[EMAIL PROTECTED]> wrote:

> 
> Burcin Erocal wrote:
> > On Fri, 7 Nov 2008 03:26:35 -0800
> > "Mike Hansen" <[EMAIL PROTECTED]> wrote:
> > 
> >> On Fri, Nov 7, 2008 at 3:14 AM, Jason Grout
> >> <[EMAIL PROTECTED]> wrote:
> >>>> plot( f(x=5), (y, -10,10))
> >>>>
> >>>> plot( f(x=5,y=y), (y, -10,10))
> >>>>
> >>>> plot( f(5,None), (y, -10,10))
> >>>>
> >>>> plot( f(5,y), (y, -10,10))
> >>>>
> >>>> g(y) = f(5,y)
> >>>> plot(g, (y, -10,10))
> >>>> That last one seemed too verbose
> >>>
> >>> I guess you could also do:
> >>>
> >>> plot( lambda y: f(5,y), (y, -10,10))
> >>>
> >>> but then you give up things like fast_float.
> >> You didn't mention
> >>
> >> plot(f(5,y).function(y), (y, -10,10))
> >>
> >> which is the one that'd be compatible with non-callable
> >> expressions.
> > 
> > If symbolic expressions cease to be callable, plot would need to be
> > changed to handle these cases:
> > 
> > sage: plot( x^2 )
> > 
> > This seems plausible, since at the moment we allow 
> > 
> > sage: plot( sin )
> > 
> > for usability.
> > 
> > 
> > Going back to your example, f(5,y) would just return a symbolic
> > expression,  so
> > 
> > sage: f(x,y)=2*x+3*y
> > sage: plot( f(5,y), (y, -10,10))
> > 
> > would be equivalent to 
> > 
> > sage: plot( 10+3*y, (y, -10,10))
> > 
> > which would just work.
> > 
> > 
> > The current syntax allows this:
> > 
> > sage: f(x,y) = a*x + b*y
> > sage: f(5)
> > b*y + 5*a
> > sage: f(5)(5)
> > b*y + 25
> >  
> > 
> > I think the last line should be a syntax error.
> 
> 
> I agree, since f was explicitly defined with variables x and y.
> 
> f(5) should return a function g(y) = b*y+5*a
> 
> I think this could be easily changed (just return a function that has 
> explicit variables, rather than just a symbolic expression).

I would still like to check that the length of the arguments match, and
raise an error if they don't. So, continuing the above example,

sage: f(5)

should raise an error.

It might be better if

sage: f(5, None)

or 

sage: f(5,y)

returned the function g(y) = b*y+5*a.


Cheers,

Burcin

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@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-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to