@rberteig ваше определение близко, но одно на одно. #t определяется как число, такое что t [#t] не равно nil, а t [# t + 1] равно nil. Точное значение #t иногда смущает меня, поэтому, когда я увидел ваш комментарий, мне показалось, что я снова забыл.

могу написать функцию, которая определяет, является ли ее аргумент таблицы истинным массивом?

isArray({1, 2, 4, 8, 16}) -> true
isArray({1, "two", 3, 4, 5}) -> true
isArray({1, [3]="two", [2]=3, 4, 5}) -> true
isArray({1, dictionaryKey = "not an array", 3, 4, 5}) -> false

Я не вижу никакого способа узнать, являются ли цифровые клавиши единственными клавишами.