Nil doesn’t exist as a value in Lua, because a variable or a field that don’t exist or are unassigned are indistinguishable from a nil value, since they all return nil when evaluating. In particular, this leads to the situation that you can’t have a table where some of the fields are assigned nil as the value, because those fields effectively don’t exist.
I’m guessing it’s more of a stylistic choice. Lisps typically work the same way, except they can retrieve the full map structure even if some fields contain nil as the value.
Unfortunately, Lua’s approach hinders exchanging structures with null values with other environments: see my comment here.
Nil doesn’t exist as a value in Lua, because a variable or a field that don’t exist or are unassigned are indistinguishable from a nil value, since they all return nil when evaluating. In particular, this leads to the situation that you can’t have a table where some of the fields are assigned nil as the value, because those fields effectively don’t exist.
Ah I see, that makes it clear. I guess it is a “good enough” solution where it doesn’t matter in real world.
I’m guessing it’s more of a stylistic choice. Lisps typically work the same way, except they can retrieve the full map structure even if some fields contain nil as the value.
Unfortunately, Lua’s approach hinders exchanging structures with null values with other environments: see my comment here.