Mathieu Bouchard wrote:
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.
That's a weak argument against Lisp. You can replace every occurrence of CAR with CAR2 defined like
I didn't intend it as an argument against Lisp, but rather a gripe about the eccentricities of Lisp, or perhaps my own stupidity. Dealing with things like this might be even more annoying in a dataflow language like Pd, but maybe not.
I guess this gets back to a question someone raised earlier in the conversation about where Pd wants to go. Do we want a high level application, like Eyesweb or Isadora, or a programming language? It looks right now like we want somewhere in between. I know I do, if I wanted to program everything I'd do it in C (or Lisp (CLM)), but I need more control than something like Eyesweb offers (dealing with a dastardly problem right now that seems unsolvable given the nature of Eyesweb in combination with my little knowledge of it). Does your average Pd user want to think about converting 1-lists to atoms?
The problems in Pd seem to arise at the borders of either side of the somewhere-between-app-and-language niche Pd has carved out. Like trying to build lists dynamically, or on the other side, just wanting a fancy drum machine I can drop in bada-boom. But then, RRADICAL fixes the latter, and things like the Python and Ruby plugins help on the other end.
Speaking of which... I've been thinking about porting the MAX Lisp object to Pd when I have more time.
(defun car2 (my-list) (if (listp my-list) (car my-list) my-list))
and it's true that it would be cumbersome to do it for every function that processes lists, but then, code that doesn't treat atoms as 1-lists tends to work better when it comes to handling nested lists.
If I have a two-element list (A B), with both elements being lists themselves, then if I remove B, is the result (A), or just A ? why ? (that's where the Pd way can get really annoying, though nested lists aren't yet implemented in Pd)
Mathieu Bouchard -=- Montréal QC Canada -=- http://artengine.ca/matju
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://iem.at/cgi-bin/mailman/listinfo/pd-list