Variable can be used for two purposes, the first is to match words or data in a "case" operation, the second is to store temporary data.
Variables are defined on the current stack, and every state defines its own sub-stack, child's states see parent variables, but if a state is a dead end, its stack will be cleared, and not affect its parent.
Note that only one Quotient will be evaluated and its value will be returned (well if it returns #null then the state processing will continue). Any state processing must occur in a do() operation.
>> if (#false, #true)
This is odd, will always be false.
>> :is1 {
>> set #instantiation to #false;
>> }
This does not make sense, #false is not a classification, and you never use :isa in a case. You seem to want to use :is1 as a state/global variable, in which case to set it a value in a case, you would use,
do (assign :is1 to #false)
If you wish, you can give an plain English explanation to what you want to do, and I can give you some example code.
|