<div dir="ltr"><div><div><div>Guards were added as an extension to pattern matching, a way of expressing things which could not comfortably done by extending the pattern syntax, for example saying that something had to be an atom or greater then 5.<br><br>The original guard syntax was different from standard expressions in many ways and much more restricted than today so the difference was clearer. There was less chance of confusion, expressions were expressions and guards were guards.<br><br></div>It was making the guard syntax completely the same as expressions and adding things like logical expressions which made the difference less clear and things became more confusing. And calling them guard *expressions* instead of guard *tests* does not help.<br><br></div>I think it is very important to stress that the guard and the body of a clause are very different beasts and obey different rules. Adding a proper 'cond' might help. All in IMAO.<br><br></div>Robert<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On 6 January 2015 at 19:25, Thomas Lindgren <span dir="ltr"><<a href="mailto:thomasl_erlang@yahoo.com" target="_blank">thomasl_erlang@yahoo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="color:#000;background-color:#fff;font-family:lucida console,sans-serif;font-size:16px"><div dir="ltr"><font>Guards are a mess IMO, for reasons including, but not restricted to, the ones you mention.</font></div><div dir="ltr"><font><br></font></div><div dir="ltr"><font>Your example suggests that member/2 could be a useful new guard operation though.</font></div><div dir="ltr"><font><br></font></div><div dir="ltr"><font>Best,</font></div><div dir="ltr"><font>Thomas</font></div><div dir="ltr"><br></div></div></div><br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>