This isn't a coercion issue, it's because of how functions are  
defined in Sage using the "f(x) = expr" notation using the preparser.  
I think that's too useful to get rid of. We could special case a  
warning for "type(x) = ..." but I'm not sure if that's the best idea.

- Robert

On Jun 9, 2009, at 8:29 AM, Jason Bandlow wrote:

> Hi,
>
> I ran across the following behavior in sage-3.4.1 and sage-4.0 (I  
> don't
> have 4.0.1 yet), and I find it fairly disturbing.
>
>     sage: d = {'a': 1}         # Create some object
>     sage: d
>     {'a': 1}
>     sage: type(d) = type({})   # Attempt to check the type but
>                                #  foolishly use = instead of ==
>
>     TypeError: cannot coerce type '<type 'type'>' into a
>     SymbolicExpression.        # An error is expected
>
>     sage: d                    # But now my data is gone!
>     d
>     sage: type(d)              # Replaced by a symbolic variable
>     <class 'sage.calculus.calculus.SymbolicVariable'>
>
> This is not 'dictionary' specific; the same problem of data loss  
> occurs
> with any object at all.
>
>     sage: type(Integer) = type(2)  # Admittedly a silly thing to do...
>     TypeError: ...
>     sage: 1
>     DeprecationWarning: Substitution using function-call syntax and
>     unnamed arguments is deprecated and will be removed from a future
>     release of Sage; you can use named arguments instead, like
>     EXPR(x=..., y=...)
>
>
> My feeling is that coercion is being a little too aggressive here.  I
> understand that coercion sees the '=' and tries its best to make sense
> out of the expression, but I would hope that when it fails, nothing in
> the expression would be changed.
>
> Best,
> Jason Bandlow
>
>
> >


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

Reply via email to