Jared Updike wrote:
I'd also argue that in maths the necessary brackets are implied by
the superscripting syntax

ASCII text parsing issues aside, in math,

   2
-4           =    ?

(No you cannot ask if there is space between the 4 and the - symbol,
or if I "meant" (-4)^2   or -(4^2), or if I wrote a negative sign or a
subtract sign. I believe there is only one standard interpretation
here.)

Yes but my point is that -4^2 is not the same as

               2
           -4

because the latter by convention means - (4^2).

In other words, superscripts bind tighter than prefix ops but prefix ops bind tighter than infix.


they can only get in through the "back door" of evaluation
which just doesn't seem right.

Constant folding can eliminate any runtime cost, so effectively 0 - 2
==> negative 2 at compile time. No problem.

An Int8 has the range -128 to +127 inclusive, so I'd have expected a problem with the expression

   negate (128 :: Int8)

However I see from http://en.wikipedia.org/wiki/Two's_complement#The_weird_number that this works because -128 === +128 ie

              negate (128::Int8)
   ===    negate (-128)    -- literal to typed value
   ===    (+128)              -- negation
   ===    (-128)               -- overflow ignored

Regards, Brian.
--
Logic empowers us and Love gives us purpose.
Yet still phantoms restless for eras long past,
congealed in the present in unthought forms,
strive mightily unseen to destroy us.

http://www.metamilk.com
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to