[PD-dev] argc&argv and dollarexpansion

IOhannes m zmoelnig zmoelnig at iem.at
Wed Aug 23 09:26:05 CEST 2006


Mathieu Bouchard wrote:
> On Tue, 22 Aug 2006, IOhannes m zmoelnig wrote:
> 
>> which basically means, that [$#( is redundant, as soon as there is a 
>> [list lenght]. the latter would be more robust regarding incoming 
>> messages. i just did it for completeness.
> 
> What does "completeness" mean here, considering that if [$#( is 
> redundant, then the feature that it represents is already "complete" 
> under another form?

"completeness" in my sense is not to be understood in gödel's sense.
it is rather an emotion.

as for redundance: i see that [list length] is not yet in 
pd-0.40.0test3, so there is no "native" (as "built into pd") redundance 
present.
however, the behaviour of $# expansion can be implemented by simple 
[object]s, as soon as there is a $@ (or whatever it is called)

> 
>> which makes me think, that $@ is really a MUST.
> 
> What about a variation on $@ that passes all the arguments starting with 
> one of your choice? I would like to be able a non-dynamic abstraction 
> that can take some fixed number of arguments and then take the rest of 
> its arguments as the contents of an objectbox. e.g. if I write:
> 
> [about 42 blah blah blah]
> 
> it could be equivalent to:
> 
> [- 42]
>  |
> [blah blah blah] <- variable number of arguments taken starting with $2
>  |
> [+ 42]
> 
> does that sound useful?
> 

well kind of.
however to a limited extent, you could mimick this behaviour with

        [loadbang]
        |
        [list append $@]
|      |
[- $1] [list split 2]
|                   |
[$2                 ]
|
[+ $1]
|

(obviously this does not work for several stacked abstractions with 
similar behaviour)

but then i was always for a really havy beast like ${} which would allow 
to stack $-expansions and/or do operations on the arguments before they 
get expanded. (e.g. [f ${${1}/2}] or something...)

i have been convinced that this is bloated at the least.

mfg.adsr.
IOhannes




More information about the Pd-dev mailing list