Le lundi 06 décembre 2010 à 13:05 -0800, Ondrej Certik a écrit : > On Mon, Dec 6, 2010 at 11:29 AM, smichr <[email protected]> wrote: > >> The similarity between "simpify" and "simplify" is misleading. > > > > Yes, that would be...but it's SYMpify not SIMpify. But yes, they are > > close. I (as has been pointed out) almost exclusively use S() and so > > it's not a problem. Would there be any reason not to delete sympify > > from the namespace and just provide S() as the standard conversion > > call name? > > It seems like a good plan if everybody agrees. I believe S is some > other global object, so it should be renamed and S should be a > function. sympify() should return a deprecated warning for some time, > before we remove it.
I don't really have an opinion on the naming issue, but it seems relevant to mention an insight I've had while trying to implement generic functions and to refactor sympify() as such a generic function (see http://github.com/rlamy/sympy/tree/generic ). So, the idea is that sympify(), as currently implemented, mixes two distinct concepts: coercion and conversion. The difference between the two can be hard to grasp but it corresponds quite well to the difference between the internal-use function _sympify() and plain sympify(). Coercion is the transformation of an object that is already conceptually a sympy object into an actual sympy object, for example the transformation of a Python int into a sympy Integer. End users are only meant to use it implicitly, usually by using binary operators. For instance, in the expression 'Integer(1)/3', the int instance '3' is coerced to 'Integer(3)'. Conversion, on the other hand, is an explicit request to take any object and return a sympy object. For instance, in 'S("1/3")', the string "1/3" is converted to 'Rational(1, 3)'. If we want a consistent and easily explainable system, I think that the two concepts should be clearly separated and that the result of both should only ever be a sympy object (i.e. an instance of Basic). -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
