changed:
-
Here are my attempts at defining Pd's data types. I do not attempt to define "bang" or "pointer" since I think the current definitions are clear enough.
Basic Data Types
These are the basic data types of Pd. Each one has a distinct behavior and therefore should be classified as a distinct type so that people can clearly talk about what's happening in a Pd program.
atom -- the most basic unit of data in a message. They are usually delineated by white space.
numeric atom -- any element which is a functional representation of a number. In Pd, a numeric atom is the same as a float, they can be used interchangeably.
symbolic atom -- any atom which is not a functional representation of a number, usually in the form of words
pointer atom -- a position pointer to a 'struct'
signal -- numeric data processed at the audio rate
gemlist -- numeric data processed at the message rate used between Gem objects.
pdp packet -- numeric data processed at the message rate used between PDP objects.
gridflow grid -- a matrix of data
Messages
Messages are any series of atoms passed to an object. Every message has a "selector" followed by any number of arguments.
selector -- The selector is a symbolic atom, which is a non-numeric string with no white space, semicolons, or commas. In the case of messages whose first element is a numeric atom, the selector is implied.
Data Structures
These structures are made up from the basic data types. They can be broken down into elements of the above types.
bang -- a bang is any message that has a selector "bang".
float -- a float is a two atom series where the first atom is the "float" selector and the second atom is a numeric atom. Can be used interchangeably with messages that are just a numeric atom.
symbol -- a symbol is a two atom series where the first element is the "symbol" selector and the second element is a symbolic atom. Any series with a selector of "symbol" with more than two atom is automatically converted to a symbol by truncating all other atom except the "symbol" selector and the second atom.
comma -- a comma has a special meaning in Pd, therefore its also an atom
semi-colon -- a semi-colon has a special meaning in Pd, therefore its also an atom
dollar -- don't know how to define this
dollarg -- don't know how to define this
list -- a series of 2 or more atoms whose first atom is either the selector "list", or a numeric atom, which causes the "list" selector to be implied. A 0-atom list is a bang, a 1-atoms list is either a float or a symbol. Are there any exceptions where a 0- or 1-element lists actually exists? I suppose only in a message box.
selector series -- a series of 2 or more elements whose first atom is neither the selector "list" nor a numeric atom.
array -- an array is a series of numeric atoms with a graphical representation
struct -- an