On Monday 17 December 2007 11:41, William Stein wrote:
> This is *not* a bug.  The is by design.  Since f has no variables it
> is no longer
> implicitly callable:

Sorry for the double reply.  Perhaps I should be very explicit about why I 
think the current state is very error-prone (and hence, IMO, bad design):

sage: f=lambda n: t*(x-n*x)
sage: f(1)
0
sage: f(2)
-t*x
sage: f(2)(1,2)
-2
sage: f(1)(1,2)
<type 'exceptions.ValueError'>: the number of arguments must be less than or 
equal to 0

It is so not obvious that f(2) and f(1) are different in any major way.  I can 
imagine situations like the above cropping up in much more subtle ways and 
being totally inscrutable.  So, in short, I believe that the current design 
makes __call__ nearly useless for serious programming beyond one-liners.  
However, if we had to make things callable explicitly, the variables, 
variable order and all such things are perfectly clear.

Oh, and sorry for not being more involved in the discussion last week about 
this design -- I was far more concerned with factoring polys.

--
Joel

--~--~---------~--~----~------------~-------~--~----~
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://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to