FWIW I myself don't know how to answer your questions about def because I don't know the truth of it and I don't want to put my guesses on public forum. I used to use def as a portable 'chunk of code' shorthand, to be dropped in later in various places once other values had been set, such as in macros. I wouldn't do it that way now.
WARNING : Designer potentially talking bollocks about code.
Everything that follows could be NONSENSE:
..isn't a coordinate list, its not a vector, its not an integer, its not an index ...at least not how I saw it. Its 'if I now type 'order_recarm', act as if I type the text string '1'. So if you do:
Code:
def order_recarm -big line of walter-
.. it doesn't evaluate that big line of WALTER. It just inserts that big line of WALTER into the next macro's input, which the macro isn't going to like. However,
Code:
set order_recarm -big line of walter-
...
would evaluate that big line WALETR using whatever values things were at that point in the rtconfig (not what you want), and set order_recarm to be that value.
I've just taken a look at the v5 macros ands woh brother, run away. I had never used macros before, they hadn't been in WALTER before, I had no documentation, I went down some pretty whacky roads. I mean, look at all the eA eB eC stuff - I had completely failed to grasp that this stuff was evaluated linearly, so I didn't need all that complication providing the previous/next elements. Previous element was the last thing we just did (doh!) and this element will be that to the next element. Lol.
Hey, it worked then, and it works now, so yeah cool. But if I were to mess with altering or extending that today, I would expect to break it in ways I wouldn't understand, because its really very bad. If you've got what you are doing half working then that's cool. I would still say start again not with v5
Here's where I
think the solution is : when I did reordering for the theme assembler I experimented with doing "make n placeholder objects, flow and resize them, then assign elements their coordinates by script param". I completely can't remember why it didn't work, and that's essentially how I'm doing the extmixer sections in the (thing we're not talking about here) so it should work. Did I stop because it got messy, or because I uncovered some hidden fundamental flaw in the method? I wish I could remember, sorry. As I think it through now, it should work...