KEYED LISTS Extended Tcl defines a special type of list referred to as keyed lists. These lists provided a structured data type built upon standard Tcl lists. This provides a function- ality similar to structs in the C programming language. A keyed list is a list in which each element contains a key and value pair. These element pairs are stored as lists themselves, where the key is the first element of the list, and the value is the second. The key-value pairs are refered to as fields. This is an example of a keyed list: {{NAME {Frank Zappa}} {JOB {musician and com- poser}}} If the variable person contained the above list, then keylget person NAME would return {Frank Zappa}. Executing the command: keylset person ID 106 would make person contain {{ID 106} {NAME {Frank Zappa}} {JOB {musician and composer}} Fields may contain subfields; `.' is the seperator charac- ter. Subfields are actually fields where the value is another keyed list. Thus the following list has the top level fields ID and NAME, and subfields NAME.FIRST and NAME.LAST: {ID 106} {NAME {{FIRST Frank} {LAST Zappa}}} There is no limit to the recursive depth of subfields, allowing one to build complex data structures. Keyed lists are constructed and accessed via a number of commands. All keyed list management commands take the name of the variable containing the keyed list as an argu- ment (i.e. passed by reference), rather than passing the list directly. This functionallity is provided by Extended Tcl.