On Mon, Oct 27, 2014 at 10:32 AM, Nils Bruin <nbr...@sfu.ca> wrote:

> On Monday, October 27, 2014 5:03:00 AM UTC-7, Volker Braun wrote:
>>
>> On the command line we could bind == to _isomorphic_, but use _identical_
>> in library code. Then we would have intuitive comparison and could still
>> work with associative containers.
>>
>
> I don't think this would be easy to do with the current preparser. Since
> "==" is an infix operator, you need to fully parse the expression to
> substitute the called operation reliably. Our current preparser only does
> regex. It is of course entirely feasible to rewrite the REPL to first use
> python's parser to give us an AST and do substitutions on that prior to
> fully compiling and executing the statements.
>
> Furthermore, I think it is a strength of computer algebra systems such as
> sage, magma, maple that their interface language is also used for large
> parts of their libraries. This already doesn't quite hold true for sage,
> but apart from "1/2" and "2^3" it's confined to syntax that produces errors
> in straight python. I suspect that changing the semantics of "==" between
> interface and library will be much more subtle and hence more problematic
> (because casual testing may well not find differences).
>

+1


> I see where your desire for "different parents means not equal" comes from
> (I don't think we have to go all the way to is_identical: for p-adic
> elements just insisting that precision also agrees should be sufficient),
> but I don't quite see a way to implement it that won't lead to bigger
> problems elsewhere.
>

 I think this would be too constraining, even in library code. Either that
or we'd have to make a bunch of exceptions (e.g. comparison to the int and
Integer 1 and 0, ...)

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to