Line 47: | Line 47: | ||
Depending of context of use, an expr instance has access to some specific variables | Depending of context of use, an expr instance has access to some specific variables | ||
− | Fill | + | * Fill |
− | Apply | + | * Apply |
− | Lookup | + | * Lookup |
− | Find | + | * Find |
Revision as of 14:57, 5 July 2010
This is a simple reference for the EXPR class.
Creation - Elements of the call
An EXPRession is a sentence which can be applied to the content of an FMAT or an FVEC. It can be created in an FTM.object (class expr) or in an FTM.message. In both case, it shares the same syntax:
1_ it starts with expr
2_ it is surrounded by simple quotes ' '
3_ it is then encapsulated within parenthesis (to be executed like all of FTM's code)
For example, the expression returning the value 1 is
expr '(1)'
You can use all the FTM Functions available to create your expression. Moreover, $1, $2, etc will be replaced by values passed to your instance of expr.
For example, the expression returning the sinus of its input is
expr '(sin $1)'
There are two places you can create a new expr instance:
- within a ftm.object
as shown in the ftm.class.expr.maxhelp document. On the left, you put the expression, on the right its name, the latter being the way to call the expression
- within ftm.mess
when it is used as an argument to a method to another object, like in the following example:
((new fmat 10 3) fill (new expr '(random 1 3)'))
Scope of variables
In the previous example, you could be tempted to use $1 and $2 to choose the boundaries of the random function within the expressionm but the variables $1 and $2 would not refer to the ftm.mess inputs, but to the expression variables. We therefore need to pass those variables local to the ftm.mess to our newly created instance of expr by doing the following:
((new fmat 10 3) fill (new expr '(random $1 $2)') $1 $2)
Special Variables
Depending of context of use, an expr instance has access to some specific variables
- Fill
- Apply
- Lookup
- Find