On Jul 6, 2013, at 9:57 PM, Andrew Starks <firstname.lastname@example.org> wrote:
So here we can see a bunch of cases where `nil` is absolutely "a
Indeed, which is why nil is perfectly acceptable as a *value* in an argument list or return value. In Lua, nil is a value, which triggers certain special behaviors on assignment to tables. It's SUPPOSED to be that way; in the C API I can push nil not he stack, I can check to see if a stack slot "contains" nil, and I can copy a nil from one part of the stack to another. Looks like a value to me.
I'm reminded of the medieval arguments about zero (a fascinating topic btw), when many people got really really worked up over the idea of a "number zero" .. how could a number, which was supposed to be a count of something, mean nothing and not be nothing itself? :)