Hi CGS,<div><br></div><div>I can't understand your statement --- " if in the first branch you use again random:uniform(), the second branch condition can report an inaccurate result."  Could you please make it clearer? Thanks!</div>
<div><br></div><div>Hi Others,</div><div><br></div><div>Why functions with side effect can not be in the guard expressions?</div><div><br></div><div><br></div><div>Thank you!</div><div>Barco<br><br><div class="gmail_quote">
On Fri, Dec 2, 2011 at 5:50 PM, CGS <span dir="ltr"><<a href="mailto:cgsmcmlxxv@gmail.com">cgsmcmlxxv@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<u></u>

  
    
  
  <div text="#000000" bgcolor="#ffffff">
    Hi,<br>
    <br>
    To put in simple words for better understanding, you can have only
    constant variables withing the guard expression. That means, in your
    case, if in the first branch you use again random:uniform(), the
    second branch condition can report an inaccurate result.<br>
    <br>
    Alternatively, you can use case statement:<br>
    <br>
    case (random:uniform()<0.5) of<br>
         true -> good;<br>
         false -> bad<br>
    end<br>
    <br>
    I hope this answer will help you.<br>
    <br>
    CGS<div><div class="h5"><br>
    <br>
    <br>
    <br>
    On 12/02/2011 10:30 AM, Barco You wrote:
    </div></div><blockquote type="cite"><div><div class="h5">Why does the following expression got "illegal guard
      expression" when compiling:
      <div>X = 0.5,</div>
      <div>if</div>
      <div>    random:uniform() < X ->      %error reported for
        this line</div>
      <div>           good;</div>
      <div>    true -></div>
      <div>           bad</div>
      <div>end.</div>
      <div><br>
      </div>
      <div>But if I change it to following expression, it's ok:</div>
      <div>
        <div>X = 0.5,</div>
        <div>Ran = random:uniform(),</div>
        <div>if</div>
        <div>
              Ran < X -> </div>
        <div>           good;</div>
        <div>    true -></div>
        <div>           bad</div>
        <div>end.</div>
      </div>
      <div><br>
      </div>
      <div>BRs,</div>
      <div>Barco</div>
      </div></div><pre><fieldset></fieldset>
_______________________________________________
erlang-questions mailing list
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
    </blockquote>
    <br>
  </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>