On Nov 25, 2007, at 1:34 PM, William Stein wrote:

> On Nov 25, 2007 12:13 PM, Nick Alexander <[EMAIL PROTECTED]>  
> wrote:
>> Hi William,
>>
>> I've been thinking about
>>
>> http://sagetrac.org/sage_trac/ticket/1135
>>
>> for about 2 days now.  I can think of no obvious way to handle the
>> following three cases:
>>
>> R.<x, y> = PolynomialRing(ZZ) # names should be added
>> R.<x, y> = PolynomialRing(ZZ, 'x, y') # names should not be added
>> R.<x, y> = PolynomialRing(ZZ, 'a, b') # names should not be added
>>
>> smoothly.  In general, deciding whether the caller has included names
>> is equivalent to the halting problem.  Due to Python's line-as-block
>> syntax, preprocessing *cannot add newlines*, making it essentially
>> impossible to add try/except blocks.  (I've tried -- if it works at
>> the prompt, it fails in doctests.)
>>
>> What I think we should do is process "R.<x, y> = PolynomialRing 
>> (ZZ)" to
>>
>> with __default_var_context('x, y'): R = PolynomialRing(ZZ); (x, y, )
>> = R._first_ngens(2);
>>
>> And then have normalize_names in parent_gens.pyx check to see if
>> there is a default var context in place when creating a ring with no
>> names specified.  This would let "R.<x, y> = PolynomialRing(ZZ, 'a,
>> b')" be handled uniformly.
>>
>> The only reason to use with: rather than just assignment is that it
>> is possible to guarantee default variable names do not remain in
>> scope too long.
>>
>> Thoughts?
>> Nick
>>
>> PS.  I'll try a quick implementation soon, but I don't want to waste
>> time if there is some reason this is a bad idea.
>
> If this works I think it would be an extremely good idea.   I can't
> see a problem with it yet.  Though implementing it could suggest  
> problems.
>
> It also relates to some people's desire to have a mechanism for having
> a default variable name, e.g., always use "x" or "x0,x1,x2,..." if
> nothing is specified.

+1 I think this is a great way to solve the problem.

- Robert


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