A common type of argument that a program might expect would be a character string that is matched against a list of possible keywords, such as a list of commands to tell the program what to do next. In general, case is not significant for such matches, (i.e., `KEYWORD' would match `keyword'). Also, partial matches are usually allowed, (i.e., `key' is a partial match to `keyword'. If the list of allowed matches includes two such partial matches, then usually the first in order is taken. For example if the match-list is (`keyword',`keyhole',...) then `key' matches `keyword'. Of course, any exact match takes precedence, in (`keyword',...,`key') then `key' matches `key'.
The particular program in use may modify any of these conditions individually. Case may be made significant, partial matches may be disallowed, or, if allowed, then only unique partial matches (so that `keyh' would be necessary for a legal argument matched against the list (`keyhole',`keyword',...) ).
Some programs will use a special-choice subroutine, which will prompt a user to input a single argument that will be compared with a list of choices. An example of such an interface might be as follows:
Please choose a keyword: (default)where the string in parentheses is returned as the default if the user just returns an empty line. If the user returns a ?, then a list of all the legal options will be displayed. An EOF should be handled by the program as an exceptional reply (e.g., to revert to a previous stage of the program).
An even more special case is when the user is prompted to provide an answer to a question:
Do you know how to respond to this? (y)In these cases, the possible answers are `yes' and `no'. Again, the default value is in the parentheses.