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