On May 9, 2007, at 4:59 PM, Bobby Moretti wrote:
> On 5/9/07, Justin C. Walker <[EMAIL PROTECTED]> wrote:
[snip]
>> This is the part that I didn't really get until now.
>> The calculus package is a great addition. It seems to 'just work'.
>
> Thanks :). We tried to emulate the feel of language-level literals
> for doing
> symbolics.
Seems pretty sweet to me.
> I have a few concerns (cf. the Principal above), since this package
>> is affected by what you change during a session, but overall, I
>> like it.
> Here's an example of what I'm hinting at:
>>
>>> sage: f=c*x
>>> sage: diff(f,c)
>>> x
>>> sage: diff(f,x)
>>> c
>>> sage: c=3
>>> sage: type(c)
>>> <type 'sage.rings.integer.Integer'>
>>> sage: type(f)
>>> <class 'sage.calculus.calculus.SymbolicArithmetic'>
>>> sage: diff(f,c)
>>> .....
>>> <type 'exceptions.ValueError'>: must supply an explicit variable
>>> for an expression containing more than one variable
[snip]
> This is indeed a caveat of doing what we're doing. I too had my
> initial
> doubts about this, but I think it works pretty well in practice.
> Can you
> think of a way around this design?
After a bit of thought (including some time spent when this was
discussed a while back), I can't come up with anything that works as
well as what you have, and avoids some of these gotchas.
> Also, this same error could come up anywhere in SAGE. The
> following, while a
> bit contrived, is nonetheless possible for a novice user to input:
>
> sage: Integer = 2
Ewww..."Oops, shot myself in the wrong foot" :-}
The only thing that occurs to me is a "protect" mechanism of some
sort. It's easy to overdo such things, so I'm not seriously
suggesting it; just tossing it into the hopper...
- perhaps cutting back on the variables that are symbolic variables
by default.
- if a symbolic variable is used in this way (i.e., as a symvar),
protect it by
default (and provide unprotect() to override).
In general, we can't provide a general purpose programming language
(and SAGE is one) and avoid this kind of thing. I think the real
concern should be whether this aspect conflicts too badly with the
desire to provide a sort of "calculus calculator" for the mathematics
fan who has no interest in, or ability for, programming (and
therefore will not understand the import of some of his typing until
after his computations blow chunks...).
I suspect this will not be an issue, but it is worth thinking through
a few times.
Justin
--
Justin C. Walker, Curmudgeon-At-Large, Director
Institute for the Enhancement of the Director's Income
--------
The path of least resistance:
it's not just for electricity any more.
--------
--~--~---------~--~----~------------~-------~--~----~
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/sage-support
URLs: http://sage.math.washington.edu/sage/ and http://sage.scipy.org/sage/
-~----------~----~----~----~------~----~------~--~---