|
On 10/11/2013 06:58 PM, Luiz Henrique de Figueiredo wrote:
I can't imagine a system in which nil ISN'T falsy...In the HOPL paper we say that, if things were different, using nil in a logical expression should probably raise an error, just like in arithmetic expressions.
If you ever happen to reconsider this, I am a big supporter for a change. For me it is a real joy to read code in a language that only accepts boolean values for logical expressions including if and while conditions. You see much better what it tested for if it is always written out.
I see only few cases where a nil slipping in as a false is really a problem. But if you test for nil with "if X then" a false can slip in as a nil.
We probably all know this case: function x (a) a = a or true -- default 2 print(a) end x(false) -- prints "true" -- Thomas