I don't know; Lua's treatment of both as the same type of data leads to unexpected behavior:
local a = { 1, 2, 3, 4, 5 }
a[3] = nil -- "Remove" an element
-- Now a is { [1] = 1, [2] = 2, [4] = 4, [5] = 5 }
On a similar note, Lua's "everything undefined is nil" behavior can lead to subtle bugs. For example:
local a = { alpha, betaa, delta, gamma }
Assuming those are previously defined, the misspelled "beta" will evaluate to nil and create an array hole, which will screw up the value returned by the length operator. It also means you can't do things like reliably get the count of { f() } if f() returns nil.
"crApple"? Next you're going to tell us Bill Gates at M$ is the devil, this year will be the year of Linux on the desktop, hot grits down your pants, Natalie Portman naked and petrified...
UNIX is hot. It's more than hot. It's steaming. It's quicksilver lightning with a laserbeam kicker. -- Michael Jay Tucker