[f $0]-[message $1( is conceptually different from [message $0( for the same reason that [f $2]-[message $1( is conceptually different from [message $2( (and would be, even if $0 had any meaning in a message box). When I teach I always start with dollar-sign expansion in message-boxes, since it's simpler and easier to comprehend. Then when this issue comes up when they move to dollar-sign expansion in abstractions (and it always does come up), you can help them think it through with what they already know about message boxes.
I only see two options: one is to use a different dereference symbol for abstraction arguments in message boxes -- but why worry with that since it's easy enough to get abstraction arguments into messages at "run-time?" -- the other is to make an exception and have special behavior for $0 in message boxes (that is, make it the same as in object boxes) -- but then this probably breaks the consistency of the language.
Matt
Date: Mon, 09 Feb 2009 13:33:36 +0100 From: Georg Werner georg@fricklr.de Subject: Re: [PD] here I go again..dynamic abstractions To: pd-list@iem.at Message-ID: 499022A0.7080702@fricklr.de Content-Type: text/plain; charset=ISO-8859-1; format=flowed
hi,
Frank Barknecht:
How about making $0 in messages be a message counter?
if somebody really needs that - i dont ;)
ok, i give up. i think we are on a rather philosophical point now. but i had a lot of times when students where asking why they have to write [f $0]-[foobar $1( instead of [foobar $0(. so this came up from a users point of view. after getting all your input (thanks). i think Claude brought up the most logical solution, because this makes the different functions of $ obvious and obsolete. And it would help users and devs. (i know it will be a long way - cause it will break some patches ... :( )
$ in message boxes is unfortunate. If there was a different symbol, perhaps #, you could combine both phases in one object box to avoid jumping through pointless hoops. [$0-#1-$2-#3( would be nice, but as Pd is now, it's a nightmare.
not a nightmare, but this is one point why Pd is harder to learn for beginners than it has to. georg