[Haskell-cafe] map (-2) [1..5]
brianh at metamilk.com
Thu Aug 17 06:14:32 EDT 2006
Tamas K Papp wrote:
> The code in the subject generates an error. I understand why this is
> (- is treated as part of the number), but I don't know how to solve
> it, ie how to tell Haskell that - is a function/binary operator?
Actually looking at the Haskell98 report, -2 seems to be treated as (negate
(2)), which I find really strange because there does not appear to be any
way of specifying negative literals, and the range of negative values is
always 1 more than the range of positive values (when you use a fixed
bit-length representation eg Int instead of Integer)
I'd have thought it would have been simpler to just make the rule that -2
(no spaces between '-' and '2') would be a single lexeme, and then people
could just use (negate x) or (0 - x) instead of having a special rule and a
whole lot of confusion just for one arithmetic operator, which is never
actually needed in the first place (just as we don't need /x because it is
simple enough to write 1/x).
I see with great disappointment that Haskell' Trac ticket#50  looks as if
it will not be accepted  so we're likely to be stuck with this for years
So in answer to your question, you can't (except for workarounds already
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.
More information about the Haskell-Cafe