lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Rici Lake wrote:

> But somehow:
> 
>    x = math.sqrt(math.atan(theta))
>    if not x then
>      -- oops an error
>    end
> 
> seems easier to explain and understand than either:
> 
>    if x ~= x then ..
> 
> or
> 
>    if math.isnan(x) then ...


That is your opinion, of course, and I disagree.
I think "if math.isnan(x)" is much more straightforward to read.

For a C programmer, for example, the test "if not x" (x being a number)
could lead to the thought that Lua evaluates the number zero to false.
It could easily trick the novice in many ways.

The more you use implicit semantics, the more difficult your code gets to
read. In that respect, the "if not x" solution would be the worst.
Writing "if x ~= x" is, at least, less ambiguous.

-- Thiago