--- On Fri, 2/5/10, Matteo Sisti Sette matteosistisette@gmail.com wrote:
From: Matteo Sisti Sette matteosistisette@gmail.com Subject: Re: [PD] [list] output To: "PD list" pd-list@iem.at Date: Friday, February 5, 2010, 7:56 PM Hi,
Maybe I'm late, but I try to answer to the questions that have been raised about the list stuff, for two reasons: first, in case this is helpful to those who asked, and second, so that those who know more than I do can correct me where I'm wrong or show me if the whole thig can be stated in a different way.
This is my understanding of how lists and messages interact.
- The "float" or "list" identifiers are implicit when a
message starts with a number atom, so
[1( is equivalent to [float 1(
[1 2 3( is equivalent to [list 1 2 3(
Another way of stating this (perhaps more correct??) may be that a message cannot start with a number atom, i.e. it always starts with a symbol atom which is its identifier, so if you type "1" into a message box (or a text file read by [textfile]) the message actually generated has an implicit (or automatically added) "float" or "list" identifier - Which of the two interpretations is more correct is, from my point of view, just an implementation matter.
- One-element lists are equivalent to symbols or numbers,
depending on the type of their only element, so
[list foo( is equivalent to [symbol foo(
[list 1( is equivalent to [float 1( - which is equivalent to [1(
- Equivalent means that ALL objects in Pd will treat such
messages exactly the same way. The fact that some signal objects such as
[*~]
will not accept "list <somenumber>" complaining they have no method for list, is in my opinion a BUG. Somebody just forgot to do the needed conversions at the inlets. I remember someone agreed with me on this.
Whether the conversions are made at outlets or inlets of objects is another implementation matter that I think should be transparent/irrelevant to the user.
It is a bug.
I'm concerned mainly with documentation, and for an object like [list], I think it's best to say that it always outputs messages with the "list" selector, but also say how the message "list" and one-element lists are handled by objects in Pd. (The paragraph in [pd list trim] in list-help.pd already goes in this direction, it just needs to be expanded.)
-Jonathan