[PD-dev] $0 in messages, was: multiple $arg-expansion

Hans-Christoph Steiner hans at eds.org
Thu Jan 26 18:50:08 CET 2006


On Jan 21, 2006, at 2:34 PM, Mathieu Bouchard wrote:

> On Mon, 16 Jan 2006, Hans-Christoph Steiner wrote:
>
>> What is a major hinderance is the list vs. undefined set quandary.
>
> One major hinderance is your insistence on calling them undefined sets.
> The fact is that they're neither undefined nor sets. In PureData those
> things are called messages. Messages have selectors. Selectors are  
> used to
> select methods.

> Suppose that the Pd of your dreams comes to existence, and that may  
> mean
> without any so-called "undefined sets". Every message would be a  
> "list".
> Then how would you send a message like "set $1" or "color $1 $2" to an
> object? somehow the list method (which is then the only method in each
> class) would have to deal with all messages. Then a neat idea to break
> down the code in more manageable bits would be to select one of  
> several C
> functions depending on the first element of the received list. This  
> first
> argument could be called a "selector". But now, what about a
> list-processing object that really needs to be able to receive a list  
> in
> the same inlet as you would use to do "set" and "color" and such? To
> disambiguate this, let's prefix the lists intended for list-processing
> with a special selector that we might call "list".
>
> Thus messages would be called lists and former lists would be called
> something else like "really lists" but there might be better names.
> And then again there would be things that are lists but not "really  
> lists"
> and there appear again the "undefined sets" that aren't undefined nor
> sets.
>
> Or have I missed any important detail?

"undefined sets" are sets of atoms that are not a symbol, float,  
pointer, or list.  A message can be made up of a symbol, float,  
pointer, list, or a set of atoms that is none of those types.  All of  
these are messages, all with selectors (albeit sometimes its an implied  
selector).  "A set of atoms that is not a symbol, float, pointer, or  
list" is an "undefined set".

Check out [pd some odd cases of list handling] in  
doc/pddp/all_about_lists_vs_anythings.pd if you want to see specific  
examples of problems caused by this

It seems to me that the heart of the problem is the implied selectors,  
i.e. [1 2 3( == [list 1 2 3(.  Also, there is inconsistent behavior  
with lists in a number of key objects, like [route] and [print].

.hc
________________________________________________________________________ 
____

"I have the audacity to believe that peoples everywhere can have three  
meals a day for their bodies, education and culture for their minds,  
and dignity, equality and freedom for their spirits."
                                             - Martin Luther King, Jr.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2353 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20060126/2be65a6e/attachment.bin>


More information about the Pd-dev mailing list