Tim Blechmann wrote:
more generally, it might be a good idea to think of an improved list handling (similar to scheme or python) ... or forbid empty lists (= bang, which is done) and one element lists (which should be atoms)
Not sure about scheme, but given its relation to Lisp, this may be true: empty lists are allowable in Lisp, and very useful. Just today I was working on a problem in Pd, constructing a list dynamically, where empty lists would have been handy (the cyclone prepend object doesn't do empty lists). It required some obnoxious extra wiring because I needed to take the first atom in the potential list and route it out elsewhere so it could be prepended to the second atom, then I could start adding on the new atoms as they were created.
Lisp is beautiful and easy to use becuase it's logical: there aren't (m)any exceptions to the rules. A list can hold anything. That can be nothing, atoms, or other lists. The more exceptions you add the more confusing things get imho.
Of course Lisp also ends up with obnoxious things like trying to select an atom and it being the wrong type because it's actually a one-atom list.
Just my two cents.
Ian
cheers ... tim