hi all,
Thanks for all the discussion, which changed my mind on a number of points.
I've uploaded a first attempt at a "list" object to CVS... see the help window, which also provides some examples. So far, I implemented these options:
list append - append a list to another list prepend - prepend a list to another list split - first n elements to first outlet, rest to second outlet list trim - trim off "list" selector
I'm not sure whether to keep the "list <function>" format or not now; the list seems divided over it and so am I. The advantage is it's the least visually cluttered way to name them. I can't use "append", "prepend", or "split" as names in their own right (they're already used, and using namespaces to alias well-known names would cause endless confusion!) The advantage to Iohannes's suggestion (list_append, etc.) is that external objects could supply list_whatever objects that could belong naturally to the series.
I think I have an adequate way to deal with non-list messages; they're converted to lists on input, and the "list trim" object can be used to explicitly convert back. I still think it's better style to use "true" lists wherever possible, but this will probably never find general agreement. My only advice is that, if you want to use non-list messages, just never, ever name a file "bang"!
cheers Miller