It is possible to call the first iterator without the current state,
which returns initial value, but the order is still not guarantueed.
a = {[1]="I", [2]="II", [3]="III"}
-- create iterator
iter = pairs(a)
print("Calling iterator first time ")
currentKey, currentValue = iter(a)
print(currentKey, currentValue)
print("Calling iterator second time")
currentKey, currentValue = iter(a, currentKey)
print(currentKey, currentValue)
print("Calling iterator third time")
currentKey, currentValue = iter(a, currentKey)
print(currentKey, currentValue)
print("Calling iterator fourth time")
currentKey, currentValue = iter(a, currentKey)
print(currentKey, currentValue)