#N canvas 0 0 618 425 10; #X text 14 13 Extending PureData with Haskell; #X text 14 26 AngloHaskell 2007 Presentation; #X text 14 39 Claude Heiland-Allen ; #X text 14 69 04: Dynamic Typing; #X text 14 99 Pd is weakly dynamically typed. Expect errors!; #X text 34 169 type Message = (Selector \, [Atom]); #X text 34 153 type Selector = Symbol; #X text 14 119 In pseudo-Haskell syntax \, Pd's entire type system is:; #X text 14 189 Special selectors:; #X text 34 209 bang; #X text 34 229 float; #X text 34 249 symbol; #X text 34 273 list; #X msg 142 206 bang; #X msg 143 228 float 42; #X msg 143 250 symbol quux; #X msg 143 271 list a 1 b 2 c 3; #X text 291 225 a single number; #X text 291 248 a single symbol; #X text 291 271 a list of atoms; #X text 14 339 Any other symbol can be used as a selector \, these messages; #X text 14 353 are generally termed ``anything'' messages or ``methods''. ; #X obj 84 313 print type; #X text 34 138 data Atom = F Float | S Symbol | P Pointer*; #X text 291 204 unit message; #X text 14 399 * I won't be covering Pd pointers in this presentation. ; #X connect 13 0 22 0; #X connect 14 0 22 0; #X connect 15 0 22 0; #X connect 16 0 22 0;