On 7 Oct 2011, at 21:16, Asmus Freytag wrote:

> On 10/7/2011 11:27 AM, Hans Aberg wrote:
>> The context I have in mind is a computer that largely sticks to the ASCII 
>> tradition, but otherwise uses new Unicode additions to make input more 
>> math-like.

> that's essentially the same goal as behind the design of the "Mathematics 
> Linear Format" described in Unicode Technical Note #28 
> (http://www.unicode.org/notes/tn28/UTN28-PlainTextMath-v3.pdf).

Yes, the goal is the same, but there are many ways to do a computer language. I 
am really interested in what kind of type theory to choose, commensurate with 
practice for basic types.

> You could do worse than making this your starting point. Murray has spent 
> years, probably decades working out the details of this format and there are 
> working implementations that use it.

Well, see how you resolve the conundrum of 1/2/3/4, which in computer languages 
typically parses as ((1/2)/3)/4. Changing the meaning of ASCII "/" as division 
would cause a lot of confusion.

Now, add a lexer that parses rational numbers, along with division "/". Then 
1/2/3/4 parses as (1/2)/(3/4), as the lexer finds the tokens "1/2", "/", and 
"3/4". So keeping "/" as division spoils tokenized rational numbers.

One can fix this by using ⁄ U+2044 FRACTION SLASH for rational numbers, like in 
1⁄2/3⁄4. Or by using a long slash as a division with lower precedence, say ∕ 
U+2215 DIVISION SLASH; the meaning of 1/2∕3/4 then becomes clear.

Hans




Reply via email to