Style guides are not syntax rules. Every body writes n+1 at times. Is there any other place in Julia where putting spaces (or not putting spaces) around arithmetical operators makes a difference? Would this be allowed by the general Julia philosophy? Will it not lead to errors very difficult to track down?
On Monday, January 5, 2015 9:33:41 PM UTC+1, Jeff Waller wrote: > > The cause for this thread is mainly a lexical analyzer bug for hex > notation. Except for the error in #9617, I'm fine with the current behavior > and syntax even with the semi e-ambiguity if you want the scientific > notation literal, use no spaces. This is only ambiguous because Julia > permits a number literal N to proceed an identifier I as a shortcut for > N*I, which is different than many languages and part of Julia's charm. I'd > be sorry to see it go. > > [0-9]+(.[0-9]+)?e(+|-)?[0-9]+ <---- scientific notation literal > > 2e+1 is 2x10^1 > 2e + 1 is 2*e + 1 > 2e+ 1 is a syntax error because to the lexical analyzer 2e+ is an > error without at least 1 trailing digit (no spaces) > > typing 2e+1 (without the space) and expecting it to mean 2*e + 1 is way > over emphasizing the need to not type a space. All of the other language > style guides are consistent about this being bad style. > > Finally consider this > > *julia> * > *2e-1e**0.5436563656918091* > > This is parsed as (2*10^-1)e = .2e which I assert is the right thing to > do. >