<br><br><div class="gmail_quote">On Sun, Nov 8, 2009 at 10:30 PM, michael rice <span dir="ltr"><<a href="mailto:nowgate@yahoo.com">nowgate@yahoo.com</a>></span> wrote:<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;" valign="top">
<div class="im"></div>This doesn't.<br><br><span style="font-family: courier,monaco,monospace,sans-serif;">area :: [(Double,Double)] -> Double</span><br style="font-family: courier,monaco,monospace,sans-serif;"><span style="font-family: courier,monaco,monospace,sans-serif;">area p = abs $ (/2) $ area' (last p):p</span><div class="im">
<br style="font-family: courier,monaco,monospace,sans-serif;"><span style="font-family: courier,monaco,monospace,sans-serif;">
where area' [] = 0</span><br style="font-family: courier,monaco,monospace,sans-serif;"><span style="font-family: courier,monaco,monospace,sans-serif;"> area' ((x0,y0),(x,y):ps) = ((x0-x)*(y0+y)) + area' (x,y):ps </span><br style="font-family: courier,monaco,monospace,sans-serif;">
</div></td></tr></tbody></table><br>
</blockquote></div><br>This function is almost correct except you got your priorities wrong : application priority is always stronger than any operator's so "area' (last p):p" is read as "(area' (last p)) : p"... Besides your second pattern is also wrong, the correct code is :<br>
<br><span style="font-family: courier,monaco,monospace,sans-serif;">area :: [(Double,Double)] -> Double</span><br style="font-family: courier,monaco,monospace,sans-serif;"><span style="font-family: courier,monaco,monospace,sans-serif;">area p = abs $ (/2) $ area' (last p : p)</span><br style="font-family: courier,monaco,monospace,sans-serif;">
<span style="font-family: courier,monaco,monospace,sans-serif;">
where </span><span style="font-family: courier,monaco,monospace,sans-serif;">area' ((x0,y0):(x,y):ps) = ((x0-x)*(y0+y)) + area' (x,y):ps </span><br> <span style="font-family: courier,monaco,monospace,sans-serif;">area' _ = 0<br>
<br>-- <br>Jedaï<br></span>