Differentiate between validating and non validating parser
The first word of the list (word number zero) will be the command name and the remaining words will be what the command sees as its parameters.
This method, in fact, is one of only a very few ways to construct command strings that have the desired parameters when one or more of the parameters contains user-supplied data, possibly including nasties like backslashes or unbalanced braces.
Since each command is a list, and a script is a sequence of lists, list operations are often used to build up commands and scripts that can then be interpreted using and friends.In particular, using double-quotes and the string commands such as and its friends give you special support for the technique of using lists as commands.If a command being evaluated is a "pure" list, that is, one that was constructed using the list commands and has never acquired a string representation, then the evaluator is able to short-circuit the parsing process, knowing that all arguments have been substituted.Because a list is a string, string operations can be applied to it, though the danger exists that string operations will yield an invalid list. The items the new list are quoted with braces and backslashes such that if it is passed to , each argument in the new list becomes a word of a command, and special characters in each word are escaped so that Tcl interprets them as literal characters.Although a properly-formatted list can be typed out manually, it's usually best to use A script that contains no command substitutions is a valid list composed of all the words of all the commands in the script.
Because both commands and lists use whitespace to delimit words, every valid list is a valid script.