hi,
forgive me torturing 'self-modifying abstractions' thread, but still, this thread self-modified little bit further in my mind...
The question was, whether passing (sub)abstraction name to an abstraction may be useful, and whether it should be allowed. Well, perhaps the answer is 'yes' and 'yes', although the other solution (linking at the same level instead of nesting) is by no means less encapsulated or general, while being safer and not dependent on yet unsettled features of PureData.
However, if passing by name is allowed, then we need to find a simple way of inserting $-objects into an abstraction. This cannot be done easily if an abstraction is edited in a toplevel window, because not instantiated `formal parameter object' has no inlets/outlets (as pix rightly pointed out), and therefore must be used without patchcord connections. Relying solely on send/receives makes the whole concept exotic.
If an abstraction is edited after instantiation, then $-objects will get their proper inlets/outlets according to a name passed to that abstraction. Before reasoning any further, I have three questions about saving instantiated abstractions.
dollar-killers. Is that a permanent feature?
behaviour to gui-objects. While editing an abstraction instance, one can put a [pd $1] object and $1 is properly instantiated. But any dollar used in a subpatch name is not instantiated at all after reloading. Is that a permanent feature?
instances before reloading of a parent patch. Is that a permanent feature?
Krzysztof