Frank Barknecht wrote:
I see a third option: $0 is not only different from the $-variables in message boxes, but it's also different from the $-variables used as object arguments.[1] So another way out would be to replace only "$0" with something like "#0".
Yes. This, at least, would end the irrelevant "dollar sign variables
in message boxes are different than abstraction initializers" argument
every time someone asks why $0 can't be used in a message box. :-)
Also, it would be much less confusing in general, because $0 never means
the same thing as $1...$n, inside *or* outside of message boxes.
Of course beginners then still would like to use #0 in a message box.
I'm not a beginner (though far from an expert), and I still want to use the unique identifier in message boxes. What, exactly, is wrong with that use case? Frank, I think you make quite a bit of use of $0 in messages in [memento], for example. If it's wrong, why does the idiom;
[f $0]-[message $1(
get suggested as a solution so often? In my opinion, that's just a kludge, avoiding the original problem.
Looking back on the thread, I see this from Iohannes:
$-args in message-boxes are a way to modify messages. since messages don't have a patch-context, neither have (their
patchable instances) message-boxes.
But the message-boxes *do* have a patch context; they live in an abstraction that has a unique identifier, which is sometimes useful to blend into a message.
I'm sorry for being stubborn about this, but I still don't see Georg's basic question answered, just a lot of dancing around it. :-)
Phil