Add 'string is list' to the 'string is' SubcommandJoe Mistachkin$Revision: 1.7 $Tcl lists strings
The string command supports tests for a number of Tcl's basic types, for example, integers, doubles, and booleans. This TIP proposes adding lists to the set of things that can be checked for.
The string command includes tests for the common Tcl types: string is boolean, string is double and string is integer. Unaccountably, string is list is missing from the list, making it difficult for an input validation procedure to determine whether, in fact, a string contains a proper list.
Currently, something similar to the following incantation is required:
IHNldCBpc19saXN0IFtleHByIHshW2NhdGNoIHtsbGVuZ3RoICRzdHJ9XX1d
The above construct (and others like it) are extremely counterintuitive, especially to people without intimate knowledge of Tcl.
Compare and contrast with:
IHNldCBpc19saXN0IFtzdHJpbmcgaXMgbGlzdCAkc3RyXQ==
Since string is currently serves in this capacity for determining whether a string can be correctly interpreted as an integer or double, it seems only natural to extend it so that it can determine whether a string can be correctly interpreted as a list.
This document proposes augmenting the string is command with a string is list subcommand, as follows:
string is list ?-strict? ?-failindex var? str
The result will be 1 if the string has proper list structure; otherwise, it will be 0. The option -strict is accepted for syntactic compatability with other forms of string is but has no effect since empty strings are proper lists.
A reference implementation of this TIP is available [].
This document has been placed in the public domain.