TIP #269 Version 1.3: Add 'string is list' to the 'string is' Subcommand

This is not necessarily the current version of this TIP.


TIP:269
Title:Add 'string is list' to the 'string is' Subcommand
Version:$Revision: 1.3 $
Author:Joe Mistachkin <joe at mistachkin dot com>
State:Draft
Type:Project
Tcl-Version:8.5
Vote:Pending
Created:Friday, 19 May 2006
Keywords:Tcl, lists, strings

Abstract

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.

Rationale

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:

 set is_list [expr {![catch {llength $str}]}]

The above construct (and others like it) are extremely counterintuitive, especially to people without intimate knowledge of Tcl.

Compare and contrast with:

 set is_list [string is list $str]

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.

Specification

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.

Reference Implementation

A reference implementation of this TIP is available [1].

Copyright

This document has been placed in the public domain.


Powered by TclThis is not necessarily the current version of this TIP.

TIP AutoGenerator - written by Donal K. Fellows