Inconsistent Behavior of Lists

J. Landman Gay jacque at hyperactivesw.com
Wed Sep 15 23:40:45 EDT 2004


On 9/15/04 7:27 PM, Dan Shafer wrote:

> A list should be seen as a comma-delimited data container where commas 
> separate data elements. Spaces after commas should not be significant. 
> They aren't in any other language I know of that processes list data 
> structures. 

Except in other xtalk languages, including HyperCard where the custom 
started.  ;)

"Items" are everything in between commas (or whatever the current 
delimiter is.) That includes carriage returns too. This string has two 
items:

   dog, cat
   bird

The second item starts with a space and includes a carriage return in 
the middle.

I know you already know about "words," but for any newcomers: The same 
convention is true of words. A word is everything between white space 
("white space" can be a space, tab, or carriage return.) This contains 
one word:

   one,two,three,four

This contains three words, with the first two on line 1:

   my big,fat
   cat,dog

There is one single exception to the definition of a word: any literal 
within double quotation marks is a single word. This has two words:

   my "big fat cat ate my little bird"

There is a historical reason for this last thing, which started back in 
the early HyperCard days. This definition of a "word" was convenient 
because it allowed developers to get the value of a file name in a 
single statement. In HyperCard, the "filename" property does not exist, 
so a script must parse the long name of a stack instead. The long name 
is the word "stack" followed by the filename in quotes. To get the 
actual file name in HyperCard, one routinely does this:

   put word 2 of the long name of this stack into theFilePath

Maybe that's than anyone wanted to know. ;)

-- 
Jacqueline Landman Gay         |     jacque at hyperactivesw.com
HyperActive Software           |     http://www.hyperactivesw.com


More information about the use-livecode mailing list