<div>You can use the record syntax to get around some of this:</div>
<div> </div>
<div>data P { first :: Int, second :: Int }</div>
<div> </div>
<div>firstCoord (P {first = f}) = f<br><br></div>
<div class="gmail_quote">2009/3/9 Peter Verswyvelen <span dir="ltr">&lt;<a href="mailto:bugfact@gmail.com">bugfact@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">In Haskell, a data constructor can be used partially applied: 
<div><br></div>
<div>data Pair a b = P a b</div>
<div><br></div>
<div>f = P 1</div>
<div><br></div>
<div>however, I cannot do &quot;partial pattern matching&quot;, e.g</div>
<div><br></div>
<div>firstCoord (P x) = x</div>
<div><br></div>
<div>does not work.</div>
<div><br></div>
<div>I guess a very important reason must exist why this is the case?</div>
<div><br></div>
<div><br></div>
<div><br></div>
<div><br></div>
<div><br></div><br>_______________________________________________<br>Haskell-Cafe mailing list<br><a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br><a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>/jve<br>