[PD] definitions of data types

Hans-Christoph Steiner hans at eds.org
Wed Feb 8 06:41:55 CET 2006


On Feb 7, 2006, at 7:32 PM, Frank Barknecht wrote:

> Hallo,
> Martin Peach hat gesagt: // Martin Peach wrote:
>
>> OK I see, so then wouldn't it be a good idea to merge those two types  
>> of
>> list into one? Just treat all messages as lists. Then there is no
>> restriction on the first element.
>> Then an external could have a single list method which would be called
>> for any possible input, instead of the plethora of methods for each
>> possible input symbol and type the way it is now; the external would
>> parse its input and call all those functions itself instead of
>> registering them all with pd and having pd call them. Probably the  
>> time
>> taken would be no different and the symbol table would be much  
>> smaller.
>
> Let me quote Matju on this (from a post he did on pd-dev replying to  
> Hans,
> when the term "undefined set" was still debated and finally abandoned  
> and
> which I called "meta-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 in the words of Miller:
>
>   It's not clear whether this was a good design choice, but it's
>   entrenched.
>
> I learned the word "entrenched" from that.

It is entrenched so it probably won't change anytime soon.  But I do  
think that Pd could work without "list" and "symbol" selectors.  Then  
symbolic atoms would automatically be symbols and any series with more  
than one atom would automatically be a list.  You can then have  
separate inlets to handle different situations, like the first inlet  
handling config messages like [set 1 3( and the second inlet handling  
lists that are meant as only data.

Right now its somewhere in the middle, floats don't need selectors, but  
other things do. That makes things whacky...  it might even better to  
go the opposite route and eliminate implied float and lists...

.hc

________________________________________________________________________ 
____

If you are not part of the solution, you are part of the problem.
                                                               -  
Eldridge Cleaver





More information about the Pd-list mailing list