[erlang-questions] Reading, Learning, Confused

Sean Allen sean@REDACTED
Sat Jul 19 16:51:12 CEST 2008


On Jul 19, 2008, at 10:47 AM, Edwin Fine wrote:

> You are getting twisted in knots.
>
> 1> X =0.
> 0
> 2> (X == 0) orelse (1/X > 2).
> true
> 3> f().
> ok
> 4> X = 1.
> 1
> 5> (X == 0) orelse (1/X > 2).
> false
> 8> f().
> 9> X = 0.
> 0
> 10> (X == 0) or (1/X > 2).
> ** exception error: bad argument in an arithmetic expression
>      in operator  '/'/2
>         called as 1 / 0
>
> So the orelse construct works as advertised. It will not evaluate  
> any expressions after the first false condition and prevents divide  
> by zero.

i need to reinstall because orelse doesnt for me. it works the exact  
same or.

but assuming i get a working install the reason in the example that or  
fails is because of the divide by zero correct?

which raises a new question...

why does or evaluate all the conditions? what purpose does that serve?  
when would you use or instead of orelse?




More information about the erlang-questions mailing list