2011/10/7 Hans Aberg <[email protected]>: > On 7 Oct 2011, at 22:22, Murray Sargent wrote: > >> In the linear format of UTN #28, 1/2/3/4 builds up as ((1/2)/3)/4 as in >> computer languages like C. > > OK. I looked through the paper again, and could not find a description of > that. > >> The notation actually started with C semantics and then added a larger set >> of operators, and finally adopted the full Unicode set of mathematical >> operators. > > In view of the problems of C semantics, as C++ shows, I am actually reviewing > it.
I've seen various interpretations, but the ASCII solidus is unambiguously used with a strong left-to-right associativity, and the same occurs in classical mathematics notations (the horizontal bar is another notation but even where it is used, it also has the equivalent top-to-bottom associatity). For me 1/2/3/4 means unambiguously ((1/2)/3)/4, i.e. 1/(2*3*4) when working with integer, rational, real or complex numbers with an infinite precision. Yes there are some notations of rationals using an additive space operator between the integer part and the fractional part, but it is not meant for being used in maths formulas, but only in common notations (notably in economy for stocks, or gaming, or some other pricings), and not in C or C++ or almost all programming languages. Anyway, programming languages are another piece of text, it is not really plain-text and most Unicode algorithms do not apply to programming languages, that have much stricter constraints independant of what the TUS could attempt to standardize, plus very strong requirements on the preservation of "legacy" notations that are part of the lexical and syntaxic definitions of these languages (it is not tolerated to have multiple interpretations, even if they would seem more "evident" or intuitive by casual readers: you don't program with the same freedom in those languages like when you write a humane language).

