by a small bit of example code in Programming Erlang related to guards
and short circuit booleans:
f(X) when (X == 0) or (1/X > 2) ->
...
g(X) when (X == 0) orelse ( 1/X > 2) ->
...
The guard in f(X) fails when X is zero but succeeds in g(X)
Can someone explain why?