# [erlang-questions] Order of evaluation of guards

Ivan Uemlianin ivan@REDACTED
Mon Jan 5 09:57:49 CET 2015

```The last is correct according to your guards: M < 100. Perhaps you could try:

... when N > 0, M > 0, N < 100;
N > 0, M > 0, M < 100 -> ...

Happy New Year!

Ivan

--
festina lente

> On 5 Jan 2015, at 08:51, Martin Koroudjiev <mrtndimitrov@REDACTED> wrote:
>
> Hello,
>
> First of all - Happy New Year!
>
> Suppose we have a function that accepts 2 integers and we want to react
> only when both integers are greater than 0 and one of them is less than 100:
>
> I tried:
> (dilbert@REDACTED)1> F = fun(N, M) when N > 0, M > 0, N < 100; M < 100
> -> cool; (_, _) -> not_cool end.
> #Fun<erl_eval.12.106461118>
> (dilbert@REDACTED)2> F(1,2).
> cool
> (dilbert@REDACTED)3> F(1,200).
> cool
> (dilbert@REDACTED)4> F(0,200).
> not_cool
> (dilbert@REDACTED)5> F(0,50).
> cool
>
> The last is not correct.
> What is the order of evaluation of the guards? Sadly parentheses are not
> allowed in guards.
>
> Best regards,
> Martin
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

```