newRPL: symbolic numbers
|
12-22-2014, 11:01 PM
Post: #1
|
|||
|
|||
newRPL: symbolic numbers
Here's an idea to eliminate the "approximate" vs "exact" mode.
What if symbolic numbers are allowed to remain symbolic? On the 50g, typing '2' (by being quoted, the user intended this as a symbolic expression with the number 2 inside) is automatically converted to the number 2 (ZINT or real depending on flags). But what if the number was kept symbolic? This would (in theory) eliminate the need for two separate modes of operation. When the user wants a quantity to be symbolic, just adding quotes will keep it symbolic. Within programs, instead of changing flags all the time, or issuing an error, you'd simply quote the quantities and all results would come up symbolic, or leave the numbers unquoted to get a real (approximate) result. To convert from symbolic to number, the usual ->NUM would work, and we'd need the opposite to turn an existing number into a symbolic (perhaps ->SYMB?). The idea would be something like this: { 1 2 3 4 5 } '2' / would return { '1/2' '2/2' '3/2' '4/2' '5/2' } { 45 '45' } SIN would return { 0.707... 'SIN(45)' } 2 INV --> 0.5 '2' INV --> '1/2' In other words, quoted numbers would work more like symbolic constants do now. BTW, reals within symbolics are already treated as first class citizens, so quoted reals will work just fine: '1.5/4' DUP * EVAL returns 0.14.... even in exact mode on the 50g because of the real number in the expression. This same code returns the symbolic '9/64' in newRPL. Am I missing something? Could this achieve the goal of eliminating the mode switching nightmare? Any problems that could arise from doing this? |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 4 Guest(s)