[erlang-questions] Order of evaluation of guards

Martin Koroudjiev mrtndimitrov@REDACTED
Mon Jan 5 09:51:11 CET 2015


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




More information about the erlang-questions mailing list