It's worth remembering that APL and SML, amongst others,
distinguish between the sign used for a negative literal
(¯1 in APL, ~1 in SML) and the sign used for subtraction
(the hyphen/minus in both of them).  It doesn't seem to
be a hard thing to get your head around in practice.

From having worked on a Prolog system, I can tell you
that the fact that -1 is a single token except when it
isn't, yet -X is always two, caused headaches for implementors
and confusion for users.
In Smalltalk, -1 is a number, but x-1 is three tokens, not
two.  (You have to keep track of what the previous token
was to tell what to do.)

If I were making suggestions for Haskell' (other than
please, pretty please with knobs on, let me keep n+k),
one of them would be to introduce the character U+00AF
(chosen because it's 8859-1, -4, -8, -9, and -15 at
least) as a unary minus sign, allowing it to be used
for exponent signs as well, so that
        ¯x - ¯1.0e¯10
is allowed.

Then Haskell'' could remove the unary - .

In the mean time, the unary - / binary - issue is something
you run into hard ONCE, and then avoid easily enough, not
unlike forgetting the back-ticks in x `div` y.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to