<div dir="ltr">It seems weird however that Haskell allows<br><br>  let 1 = 0<br><br>but does not allow<br><br>  let (f x, g y z) = (x*x, y*z)<br><br>Alexey.<br><br>On Friday, February 24, 2017 at 4:53:59 AM UTC+1, Brandon Allbery wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr">Without a binding it is useless at top level, but if you strictify the pattern it can be useful in `let` (possibly as a sanity check where you want the program to abort if it fails). I don't recall offhand if it desugars usefully in list comprehensions, but if so it would work as a filter. There may also be other specialized use cases; general syntax tends to get reused a lot in Haskell, so making this case a syntax error could make it difficult to support actually useful cases. :)<div><br></div><div>(Also I'm sure someone overly clever could figure out some way to abuse it. :)</div></div><div><br><div class="gmail_quote">On Thu, Feb 23, 2017 at 10:41 PM, Harendra Kumar <span dir="ltr"><<a href="javascript:" target="_blank" gdf-obfuscated-mailto="CbZtVnJQAAAJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">harendr...@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div class="gmail_quote"><span>On 24 February 2017 at 08:45, Brandon Allbery <span dir="ltr"><<a href="javascript:" target="_blank" gdf-obfuscated-mailto="CbZtVnJQAAAJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">allb...@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><font face="arial, helvetica, sans-serif">Literally the only use I've seen for this was a CCC puzzle. However, it is the trivial case of something that is more useful: pattern matching the result of an expression (say, a Data.Map.lookup when you know the key exists).</font></div></div></blockquote><div><br></div></span><div>Can you explain how that will be useful (without a binding)? Will the pattern match be ever actually tried when there is no binding?</div><span><font color="#888888"><div><br></div><div>-harendra </div></font></span></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr"><div>brandon s allbery kf8nh                               sine nomine associates</div><div><a href="javascript:" target="_blank" gdf-obfuscated-mailto="CbZtVnJQAAAJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">allb...@gmail.com</a>                                  <a href="javascript:" target="_blank" gdf-obfuscated-mailto="CbZtVnJQAAAJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">ball...@sinenomine.net</a></div><div>unix, openafs, kerberos, infrastructure, xmonad        <a href="http://sinenomine.net" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\x3dhttp%3A%2F%2Fsinenomine.net\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHBnww-LlA19Cq0MQZiTCtVEC-wow';return true;" onclick="this.href='http://www.google.com/url?q\x3dhttp%3A%2F%2Fsinenomine.net\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHBnww-LlA19Cq0MQZiTCtVEC-wow';return true;">http://sinenomine.net</a></div></div></div>
</div>
</blockquote></div>