>> whereas you cannot get an abstraction's selector (which would >> be handy 
>> for error reporting). 

> What is the selector of an abstraction? 
[my_abs arg1 arg2]
The selector is "my_abs".
The reason consistency probably keeps coming up is because everything on the Pd 
canvas as well as Pd files is just a Pd message. The possibility of learning a 
single set of rules for how messages behave is way easier than keeping track of 
special cases and inconsistencies.
So having a rule, "$0 expands to the first element of the argument vector," is 
great if the user can be guaranteed that the rule holds regardless of context 
of the evaluation.
On the other hand, suppose the rule is, "$0 expands to the first element of the 
argument vector UNLESS we're loading a canvas in which case it expands to a 
unique value to simulate locality with Pd's global binding mechanism." That's 
harder to reason about.
If you want $0 as selector in msg boxes
you could try to teach the inconsistency by reminding users that load time and 
message time are completely different contexts and therefore may have different 
expansion behaviors for dollarsign variables. But they're still going to notice 
that $1-n have *analogous* behavior in each context while $0 doesn't.
Anyhow, given the choice between an inconsistency that very few (if any) ask 
for in daily patching and one that a multitude of users have pleaded for in 
daily patching, I'm obviously in favor of the latter.

-Jonathan
  
_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list

Reply via email to