ibase and obase



Is it really necessary to specify the base in the input? 
Because we have ibase. I think you don't have the need to specify it.

Consider :

(%i1) prefix("&");
(%i2) "&"(x):=x;
(%i3) ibase : 10;
(%i4) &549;
(%o4)        549
(%i5) ibase : 16;
(%i6) &ffbc;
(%o6)        ffbc

No?

> -----Message d'origine-----
> De : maxima-admin at math.utexas.edu 
> [mailto:maxima-admin at math.utexas.edu] De la part de Robert Dodier
> Envoy? : lundi 19 juin 2006 16:50
> ? : macrakis at alum.mit.edu
> Cc : Maxima at math.utexas.edu
> Objet : Re: [Maxima] ibase and obase
> 
> 
> On 6/19/06, Stavros Macrakis <macrakis at gmail.com> wrote:
> 
> > Input in bases > 10 is occasionally useful, I agree.
> > But only occasionally.
> 
> Yes, and on those rare occasions, I want to get some
> useful behavior, instead of "Why doesn't this work?"
> 
> > 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.
> 
> If I tell Maxima "Treat everything from a to z as a digit"
> the best I can hope for is that a, b, c, 2e3, etc become 
> integers. If that's not what I want, then I won't change ibase.
> 
> Common Lisp allows this same ambiguity, and somehow
> it staggers ahead unimpeded.
> 
> > What's more, using global variables like ibase/obase means 
> that every 
> > loadfile etc. needs to be careful.
> 
> This is beside the point -- ibase and obase already exist
> and already have the potential to goof up any/every bit
> of code by changing the global environment, just like any
> other global variable.
> 
> > This is very occasionally useful,
> 
> Yes, so one would only change ibase if they thought it useful.
> 
> > but perhaps even better would be a syntax that explicitly specifies 
> > the base, so that input and output are unambiguous.
> 
> I'm not opposed to that, although I wonder what is an 
> acceptable notation.
> 
> > Or maybe sticking with the functional solution
> >
> >       base("A0",12)
> 
> base(A0, 12) is OK by me (I'd rather get rid of the quote 
> marks). The hard part of this, at present, is persuading the 
> input scanner to let through stuff like 3A0 -- at present 
> this triggers "A is not an infix operator" or some such. 
> base(\3A0, 12) would work. Well, it's ugly.
> 
> FWIW
> Robert Dodier
> 
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu 
> http://www.math.utexas.edu/mailman/listinfo/maxima
>