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