hi,
this may be related to a thread last week about the nature lists ?
as a experienced max-user i'm having problems to understand the
nature of PD atoms. there seems to be the possibility that an atom is
neither a symbol, nor a number nor a list ? like in this patch some
inputs leave [route] through the rightmost outlet:
#N canvas 316 159 576 396 10; #X msg 30 55 3.14159; #X obj 67 149 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 117 149 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 66 123 route float list symbol; #X obj 169 149 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 221 149 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 122 55 alpha; #X msg 215 55 alpha beta; #X text 213 35 NOT a list??; #X text 97 35 NOT a symbol??; #X text 41 198 Philosophical question : if an atom is not a symbol , nor a number , nor a list , what kind of primitive atom class is it instead?; #X msg 310 56 symbol alpha; #X msg 412 57 symbol alpha beta; #X msg 354 127 list alpha; #X msg 430 90 list alpha beta; #X text 351 161 it's routed as a "symbol"!; #X text 66 164 f; #X text 117 166 l; #X text 169 166 s; #X text 221 168 other; #X text 349 146 this is completely weird ,; #X msg 132 304 list alpha beta; #X obj 255 365 print A; #X obj 321 365 print B; #X msg 255 305 list alpha; #X msg 338 304 alpha beta; #X obj 256 341 zl slice 1; #X text 339 284 allowed ...; #X connect 0 0 3 0; #X connect 3 0 1 0; #X connect 3 1 2 0; #X connect 3 2 4 0; #X connect 3 3 5 0; #X connect 6 0 3 0; #X connect 7 0 3 0; #X connect 11 0 3 0; #X connect 12 0 3 0; #X connect 13 0 3 0; #X connect 14 0 3 0; #X connect 21 0 26 0; #X connect 24 0 26 0; #X connect 25 0 26 0; #X connect 26 0 22 0; #X connect 26 1 23 0;
what i find particularly confusing is that [list alpha( comes out of
the symbol outlet ...
then the nature of lists. here i compare the same functionality in pd
and max. first max:
max v2; #N vpatcher 361 44 787 395; #P window setfont "Sans Serif" 9.; #P comment 89 223 29 196617 here; #P button 70 222 15 0; #P button 29 222 15 0; #P newex 29 192 51 196617 route list; #P comment 292 159 58 196617 "test test"; #P button 227 221 15 0; #P button 186 221 15 0; #P newex 186 191 51 196617 route list; #P newex 226 156 59 196617 print SLICE; #P newex 186 129 50 196617 zl slice 0; #P newex 67 136 59 196617 print PACK; #P newex 67 98 45 196617 pack s s; #P button 39 54 15 0; #P message 102 54 26 196617 test; #P message 67 54 26 196617 test; #P comment 69 158 58 196617 "test test"; #P comment 244 222 29 196617 here; #P comment 68 35 54 196617 both work; #P fasten 6 0 14 0 72 122 34 122; #P connect 14 0 15 0; #P connect 3 0 6 0; #P fasten 5 0 6 0 44 83 72 83; #P connect 6 0 7 0; #P connect 14 1 16 0; #P connect 4 0 6 1; #P fasten 6 0 8 0 72 122 191 122; #P fasten 8 1 10 0 231 150 191 150; #P connect 10 0 11 0; #P connect 8 1 9 0; #P connect 10 1 12 0; #P pop;
... then the same in pd:
#N canvas 253 241 513 444 10; #X obj 82 133 pack s s; #X msg 175 57 test; #X msg 83 57 test; #X text 83 39 this works; #X text 175 38 this complains; #X msg 175 103 symbol test; #X text 176 86 this works; #X obj 49 101 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 147 161 zl slice 0; #X obj 83 194 print PACK; #X text 59 214 "list test test"; #X text 210 212 "test test" (so "list" is "lost"?); #X obj 7 281 route list; #X obj 8 309 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 77 311 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 24 340 print ROUTE; #X obj 157 261 route list; #X obj 158 289 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 222 290 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 21 361 "list" removed again; #X obj 213 193 print SLICE; #X text 242 289 here; #X connect 0 0 8 0; #X connect 0 0 9 0; #X connect 0 0 12 0; #X connect 1 0 0 1; #X connect 2 0 0 0; #X connect 5 0 0 1; #X connect 7 0 0 0; #X connect 8 1 16 0; #X connect 8 1 20 0; #X connect 12 0 13 0; #X connect 12 0 15 0; #X connect 12 1 14 0; #X connect 16 0 17 0; #X connect 16 1 18 0;
there seems to be no logic whether one has can use a message "as
such" and when one has to prepend the "symbol" selector. also there
seems to be no logic whether an object outputs a list "as such" or
with a prepended "list" selector ; like [pack] accepts a symbol
without "symbol" in the left inlet, but not in the right inlet ; it
will output a list prepended by "list" ; if i put this list into
[zl], the list-prefix is stripped.
also, what kind of atom is this [alpha beta gamma( if not a list?
thanks for help. best, -sciss-