<p dir="ltr"><br>
On Jun 8, 2015 05:01, "Martin Vlk" <<a href="mailto:martin@vlkk.cz">martin@vlkk.cz</a>> wrote:<br>
><br>
> Mike Meyer:<br>
> > s mp $ n - 1 parses as s mp (n - 1)<br>
> > s mp n - 1 parses as (s mp n) - 1<br>
><br>
><br>
> Hi, I think it is misleading to say that $ "parses" to something.</p>
<p dir="ltr">Which is why I didn't say such a thing. The two sentences show how the expressions he was having trouble with are parsed.  </p>
<p dir="ltr">> ($) is an infix operator with type:<br>
><br>
> ($) :: (a -> b) -> a -> b       -- Defined in ‘GHC.Base’<br>
> infixr 0 $<br>
><br>
> So what it does is it takes a function on the left hand side and applies<br>
> it to the second argument on the right hand side. The trick is it has<br>
> the lowest possible precedence value (0) so everything on the right hand<br>
> side will be evaluated before applying the function on the left.</p>
<p dir="ltr">Which explains why the expression containing a $ parses as it does, which is also useful information.</p>