CAS command question
|
01-09-2017, 07:29 PM
Post: #65
|
|||
|
|||
RE: CAS command question
What you are asking for, and perhaps you do not realize it due to continued requests for changes to left() / right() or even the creation of lhs() and rhs(), is a change in the design of the parser. The issue is not with the commands, but how the parser was designed and implemented. That is, the parser evaluates the arguments and then passes it to the commands. As parisse has already mentioned, by the time the arguments reach the actual code for left() and right(), the expression is already transformed. That is why modification to left() and right() will unlikely amount to anything fruitful. Moreover, these commands already work even as you intended them to work (i.e. like lhs and rhs) in the cases when the argument provided is in the "correct" form (i.e. unchanged).
What you probably want instead is a means for programmatically passing expressions unevaluated. A quoted expression is evaluated into its unquoted form all while keeping the form of the expression unchanged. Keeping expressions unchanged can be done by hand using single quotes (somewhat), but even then it's an evaluation as there are two types of expressions: quoted, and unquoted (the former is evaluated into the latter). However, there currently is no mechanism for passing arguments that forever remain "unchanged" except as a string. As far as what is required to make this happens, I do not know. There was mention of exception handling being a pre-requisite. And if so, that makes it unlikely since the underlying system OS (on top of which the Prime OS is built) does not have exception handling. Even lhs() and rhs() were added in the manner you want, I am sure that later on down the road there will be additional commands that you would want that need to operate on unchanged input. Keep in mind, also, that no CAS is going to be the CAS to "rule them all" -- that is why there are so many of them (Maple, Maxima, MuPad, Mathcad, Mathematica, Derive, etc.) They all have their own idiosyncrasies -- one system might be better than another in one feature, and vice versa in another (also true in terms of their design). Yet every single one of them provides a mechanism for expanding its capabilities -- namely through programming. In your specific case, the amount of programming necessary to add lhs() and rhs() using the provided programming environment is quite minimal and does not require a complete re-design of the CAS, nor would it break other components because left() and right() do not have to be modified internally. Graph 3D | QPI | SolveSys |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 4 Guest(s)