<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt"><div><span>To address your initial query about why may naturally want $0 in msg boxes, in no particular order:</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;"><span>* the syntax for variables is the same in object and message boxes.  So when a user learns that $0 in an object box expands to a unique id, and $0 in msg expands to 0, their minds may naturally wander freely between the two separate contexts for the same combination of characters '$0'.  Some users reasonably wonder why msg expansion to "0", which is all but useless, might not be replaced by something useful like obj box $0.  The reasoning might not have the same impetus
 if, say, message box variables were something different like #1, \1, or `one.  In any of those cases, when the topic would arise users would probably ask about accessing dollar variables as a whole in the way you describe.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;"><span>* $0 is almost always used for locality, whereas $1-$n are only sometimes used for locality.  Additionally, the user is _much_ more likely to do math with one of the values from $1-$n (add, multiply, etc.); they are likely never to do that with $0.  $0 and $0- prefix almost always mean "make this local", so users naturally want a way to say "make this local" inside a message box.  (They may also want to do math inside a message box, but that's way more complicated to do and do right than just fetching a single id,
 so users are less likely to vehemently push for that.)</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;"><span>* $0 itself has no natural or logical relationship to the sequence $1-$n because.  For example, $4 is the fourth atom in an array of atoms.  $3 is the atom immediately before $4, $5 is immediately after $4, and so forth.  But $0 is not the atom immediately preceding $1.  It is an inconsistency, users know this, and so they probably have a hard time seeing why adding an additional inconsistency to the msg box context is a problem</span>.<br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;">* related to above-- for consistency $0 in an obj or
 msg ought to expand to the selector.  Since it already doesn't do this in obj boxes, users probably don't care that it doesn't (and won't) do this in a msg box</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; background-color: transparent; font-style: normal;">-Jonathan<br></div><div class="qtdSeparateBR"><br><br></div><div style="display: block;" class="yahoo_quoted"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 12pt;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 12pt;"> <div dir="ltr"> <font face="Arial" size="2"> On Saturday,
 September 13, 2014 4:15 PM, Roman Haefeli <reduzent@gmail.com> wrote:<br> </font> </div>  <br><br> <div class="y_msg_container">On Fre, 2014-09-12 at 00:30 -0400, Ivica Ico Bukvic wrote:<br>> On 9/10/2014 2:21 PM, Miller Puckette wrote:<br>> ><br>> > A deeper question bothers me: what about $1, etc, too?  What if we're in an<br>> > abstraction and want to 'speak' to $0 in our calling patch?  THe usual way of<br>> > doing that is for the calling patch to instantiate the abstraction with $0<br>> > as an argument.  Then the abstraction itself can access it as, say, $1.  But<br>> > that makes me think we need a way for the message box to be able to access $1<br>> > as well as $0.<br>> ><br>> > It seems like this should either be something syntactic in messages themselves<br>> > (that could have deep repercussions as that is at the very heart of everything),<br>> >
 or else, perhaps, some kind of "properties" kludge, or perhaps (hopefully)<br>> > there's a better way I haven't thought of.<br>> <br>> This sounds like an interesting development but I am not sure if it <br>> negates the immediate benefit of parsing $0 inside a message.<br><br>Chiming late here and I also might don't grasp the whole extent of the<br>current discussion, so please excuse me when I repeat things. <br><br>While the topic arises every now and then, I fail to understand how<br>people seem to naturally want $0 in message boxes. It's not that I don't<br>see how it would come in handy. It certainly would have saved me a lot<br>of patching. However, dollar variables in object arguments are totally<br>different animals from dollar variables in message boxes. While in<br>objects they access arguments given to the parent, they are used in<br>message boxes to access a specific element of the incoming message. Why<br>should a $0 in a
 message box access the unique identifier of the parent,<br>but all other dollar variables an element of the incoming message?<br>Wanting $0 (as proposed!) in message boxes is actually wanting totally<br>different functionality depending on the variable name. Why are people<br>only complaining about a missing $0, but not about a missing $3? If I<br>want to access the third argument given to the parent in a message box,<br>I need to use the same kludge ([list append $3]-[$1( ) I have to use in<br>order to access $0. What is the difference? Ah yes, $3 already has a<br>meaning in message boxes, while $0 doesn't. Ok, $0 hasn't been assigned<br>a meaning yet, so let's give it a totally odd meaning. (excuse the<br>snarky tone).<br><br>In (my) ideal Pd world, message boxes would be able to access both, the<br>arguments given to the parent and the elements of the incoming message.<br>Since they are different things, I'd propose two different
 variable<br>prefixes, $ for arguments of the parent and # (or whatsoever) for<br>elements of the incoming list. Then we wouldn't only have $0 in message<br>boxes, but $3 from my example above would work as well. #0 would give<br>you the selector of the incoming message (that is also something that<br>currently cannot be accessed directly). <br><br>Of course, this would _totally_ break backwards compatibility. Also I<br>don't know what technical implications such an implementation would come<br>with. Rationale trumps handiness, so personally I rather opt for<br>breaking backwards compatibility than for a kludge that still wouldn't<br>make sense in a hundred years when people would ask themselves: "What<br>does $0 mean in a message box? Ah yes, it is special ... "<br><br>Personally, I even prefer the status quo to the proposed use of $0. It<br>is cumbersome, admittedly, but I'd rather miss a feature than using a<br>feature that fully breaks the logic of
 the whole.<br><br>Roman<br><br><br>p.s. I may sound as I'd care a lot about the future of $0 in message<br>boxes. Actually, I do not so much. I certainly could live with the<br>proposed use of $0 in msg boxes. I'd consider it a kludge, nevertheless.<br><br>  <br><br><br>_______________________________________________<br>Pd-dev mailing list<br><a ymailto="mailto:Pd-dev@lists.iem.at" href="mailto:Pd-dev@lists.iem.at">Pd-dev@lists.iem.at</a><br><a href="http://lists.puredata.info/listinfo/pd-dev" target="_blank">http://lists.puredata.info/listinfo/pd-dev</a><br><br><br></div>  </div> </div>  </div> </div></body></html>