ibase and obase



Input in bases > 10 is occasionally useful, I agree.  But only occasionally.
It would be a bad idea to break longstanding, useful syntax such as ordinary
variable names (a, b, c), floating-point numbers (2e3 = 2000), initial
zeroes (00777 = 777) and the dot operator (non-commutative multiplication) (
aa.bb = "."(aa,bb) ) to accommodate large bases.

What's more, using global variables like ibase/obase means that every
loadfile etc. needs to be careful.  This is very occasionally useful, but
perhaps even better would be a syntax that explicitly specifies the base, so
that input and output are unambiguous.

Consider specifying "A0" in base 12.  Here are some possible syntaxes that
are consistent with current syntax (I think):

       //12/A0/          -- do any standard extension packages use the
operator // ?
       "A0"[12]            -- currently treats as a subscripted variable,
but we might
                                        want "abc"[2] == "b" at some
point...
       #(A0,12)
       #A0#12
       #12#A0#

All pretty ugly, better solutions welcome....

Or maybe sticking with the functional solution

      base("A0",12)

is the simplest....

             -s