I don't know if this helps....
I just had a play with this. Here's a bit script using "@<"
| eventVariableArray |
eventVariableArray := EventVariable new size: 8.
eventVariableArray @< 1.
this evaluates fine and returns something like:
(Var30560 @< 1 )
But trying the following doesn't work:
| eventVariableArray |
eventVariableArray := EventVariable new size: 8.
1 of: eventVariableArray.
gives an error:
"Error: The Value 2 was used to index Var59487, an instance of class EventVariable. This index was out of bounds for this object."
What that suggest to me is that you use "of:" to index into a "normal" array. But that when you create an EventVariable "Array", it's not a normal array, it's some other kind of special object, which uses the @< operator to index into it.
Ok maybe that much was obvious. So I suppose the question is what's the advantage using one of these special EventVariable "Array" data structures as opposed to a normal array of EventVariables?
EventVariables are CapyTalk variables so evaluate at run time and are a good way of saving state of !HotValues. I suppose you could use an EventVariable "Array" to store a time series of previous values of an EventExpression (!HotValue etc.).
(I think an array of EventVariables would let you do the same thing, because each individual EventVariable in the array would be able to save state, but constructing an array of EventVariables would be more tedious.)