[Haskell-beginners] Re: map question
will_n48 at yahoo.com
Sun Oct 18 16:57:38 EDT 2009
Daniel Fischer <daniel.is.fischer <at> web.de> writes:
> Am Sonntag 18 Oktober 2009 13:11:07 schrieb Will Ness:
> > (2`mod`) is a unary operation :: (Integral a) => a -> a. Putting it inside
> > backticks would require it be a binary infix op, causing a type mis-match.
> instance (Integral a) => Integral (b -> a) where ...
> Evil, yes, but then f `(2 `mod`)` x would type-check.
Any problem that could be introduced for operators could be introduced for the
regular named values as well.
> But anyway, there are operators where a backticked section would type-check:
> f `(g `.`)` x
> That's not good.
Why? Is it not just (g .) f x ? What's the problem with it?
But, the backticked parens syntax is less necessary. What I'd really like is
for (`+`1) syntax to become legal.
Prelude> :t let add=(+) in (`add`2)
let add=(+) in (`add`2) :: (Num a) => a -> a
Are we not supposed to be able to substitute equal for equal in Haskell?
Prelude> :t (`(+)`2)
<interactive>:1:2: parse error on input `('
Prelude> :t (`+`2)
<interactive>:1:2: parse error on input `+'
More information about the Beginners