The Gap Students wrote in their letter of 28-Mar-94:
>
> Secondly we would like to know if the "[" operator could be redefined for
> records, like "+", "-" and "^". It would be very useful if we could use
> commands like:
>
> word := Code[4]; # Where "Code" is a record containing a code.
> # "word" would become the fourth codeword
>
> We hope you can help.

Record fields in GAP can be accessed via the '.' operator. This operator
takes as his right operand the name of a record field. The name of the
field can also be a parenthesized string, e.g,

obj.("operations");

is a valid way to ask for the record field 'operations' of a record 'obj'.
So it is possible to work with variable record filed names.

Moreover, record field names can be numbers. A group 'g' with 4
generators, for instance, often has the record components 1 to 4 which
contain the generators. So it is possible to get the second generator
by the simple construction 'g.2'.

The final point: if the name of the record field is a (small) integer
then this integer can used as parenthesized recor field name - without
transforming it into a string.

So, if in you example, 'Code' is a record, containing the code words
in the fields 1 to n, say, the it is for example possible to have
constructions like the following,