[PD] definitions of data types

IOhannes m zmoelnig zmoelnig at iem.at
Mon Feb 6 21:06:21 CET 2006

Hans-Christoph Steiner wrote:
>> right.
>> nobody said that "word" is a symbol.
>> but nevermind...
> Actually, you are wrong, and that is one of the key problems I am 

> arguments.  It quite clearly says "The selector is a symbol", but these 


> First, the PdDefinitions page isn't meant to learn from, but instead 
> for us to work out the details of this issue.  Second, I agree, things 

yes, but if we can make it clear for us (so we can talk about it) then
chances are high that things are so clear that others can learn from it.

> That's what the docs say, but that is not what [select], [route], and 
> [trigger] say.  We need to document what is actually happening, not 
> follow the docs and ignore what is actually happening.
> The 3rd argument of that list is only a symbol if it has a "list" or 
> "symbol" selector.  Consider this patch:
> [list 1 two drei(
> |
> [list split 2]
>       |
>       [list trim]
> The output of [list trim] is not a symbol.  [symbol drei( is a symbol, 
> [list drei( is a symbol.  [drei( is not a symbol.

so the basic confusion comes from the fact that there are 2 different
kinds of symbol:
a) the atom-type symbol
b) the message-type symbol

ad a: "drei" is always symbol, even if it is a selector; "symbol drei"
consists of 2 symbols, one is "symbol", the other one "drei".
symbols of that kind are always stored within a hash-table and are
produced with gensym() (on the C side of things)
the message-selector is _always_ of atom-type symbol.

ad b: a symbol-message is a message with a selector "symbol" and exactly
one argument of type symbol.

>> and don't forget "pointer element".
> I think that bangs and pointers are clearly defined, I feel no need to 
> try to redefine them.

i thought "definitions of data types" would define everything.

>> apropos, isn't "element" a synonym for "atom"?
> An atom is a float or a symbol, right?.   [word( is not float or a 

wrong (as i read it): an atom is a float or a symbol or a pointer.

> symbol, so it is therefore not an atom.  But it is an element in a 
> message, in this case, its used as a selector.  And from what I see, 
> "atom" is not a useful distinction when you view things from Pd.  
> Instead, it is part of the implementation.

i think the implementation tries to reflect the design.
however, i am very used to reading pd in C, so my view might be narrow.

> http://crca.ucsd.edu/~msp/Pd_documentation/x2.htm#s1.2
> "The text is divided into  atoms  separated by white space."
> "Atoms are either numbers or symbols..."
> By the first definition, atoms and elements are the same thing.  But 
> not according to the second.

this quote refers to "text".
a message need not necessarily be writeable as text.
(of course it makes everything (esp. documentation) much easier, if you
can write down the message).


More information about the Pd-list mailing list