The most useful features of Tads IMHO, is how the Tads could handle the object. Variable, table, vector, and list, you name it. I never seen any game authoring that could handle object collection like the Tads. List, what’s going to be discussed now, is one of the precious. It is unfortunately, that if you’re new on Tads and just only read the Tour Guide or the Getting Started, those books won’t let you get a hand on the object handler such as List.

Anyway, List in simple term could be analogized as a bracket, a bag, where you could put any identified object or things. For example we have apple and orange:

Apple: Food 'yummy red apple' red apple'
"A delicious red apple."
price = 20
color = 'red'
;

Orange: Food 'sour orange' 'sour orange'
"The orange looked sour."
price = 15
color = 'orange'
;


When you put the apple and orang into a bag, the list collect the object in a method:

fruitList = [Apple, Orange]


Now, the unique of this bag is that any inner attributes of the object is inherited onto the object. Thus, after put into the bag, the fruits is available whenever you want. Hence, you could call on the fruits and even conditioned the attributes anytime - using the foreach command.

foreach(local obj in libGlobal.fruitList)
{
"<> is ";
if (obj.price => 15) "expensive";
else "cheap";
}


Well, I hope this simple explanation could help you understand better about the list collection method in TadsHTML.