Unfortunately, the external representation of lists and text is not especially distinct, and to make matters worse Lingo allows things to be placed in fields willy nilly without letting on that it's turning those things into blocks of text. When you say:
put myList into field myFieldIt looks as though the list is simply being placed, whole and unadulterated, into the field, but this is not the case. There's an implicit conversion taking place. The process could (and arguably should) be more explicitly written:
set the text of field myField = string(myList)Text is just a wodge of characters, and doesn't mean anything. When you do the reverse operation
put field myField into myListmyField's contents are, by definition, text, and so that's what goes into myList. Lingo can't know that you want the text interpreted as instructions to build a list unless you explicitly tell it so. If it just blithely assumed that "[a,b,c]" was the same as [a,b,c] then there'd be whole swathes of text that could lead to confusion; and if lingo always tried to interpret every piece of text it came across it would soon get bogged down.
So, if you have stored a list into a field, to retrieve it you must use the value() function. This tells Director to interpret the text as a Lingo data description:
set myList = value(the text of field myField)And more generally, try to be aware of the different types of data you're using, and why the differences are important. Just because Lingo isn't always absolutely strict about typing doesn't mean you can just forget about it.