From ftm
Jump to: navigation, search
(Values)
Line 9: Line 9:
  
 
The values of FTM expressions can be int, float, symbol or references to FTM object.
 
The values of FTM expressions can be int, float, symbol or references to FTM object.
They values can be represended by the following terms:
+
They values can be represended by the following items:
 
* a '''''simple''''' value (int, float, symbol) such as '1', '2.3' and 'three'
 
* a '''''simple''''' value (int, float, symbol) such as '1', '2.3' and 'three'
 
* a '''''named''''' value such as '$myobj'
 
* a '''''named''''' value such as '$myobj'
 
* an '''''element''''' of an object such as '$myobj[7]'
 
* an '''''element''''' of an object such as '$myobj[7]'
 +
* a tuple such as
 
* a numbered '''''argument''''' such as '$1', '$2', etc.
 
* a numbered '''''argument''''' such as '$1', '$2', etc.
 +
* an (evaluated) expression within parentheses such as '(1 + 2.3 / $4)'
  
 
Examples of '''''simple''''' values are:
 
Examples of '''''simple''''' values are:
Line 27: Line 29:
  
 
'''''Named''''' values are defined by FTM definitions using ''ftm.object''.
 
'''''Named''''' values are defined by FTM definitions using ''ftm.object''.
The names, always representing a single value, are used in expressions with a leading dollar ('$') making for example:
+
The names, always representing a single value, are used in expressions with a leading dollar ('$'), as for example:
 
* $x
 
* $x
 
* $myobject
 
* $myobject
  
An '''''element''''' of an object can be accessed with FTM expressions using brackets ('[' and ']') as for example:
+
A '''''tuple''''' is an FTM object pretty much like an ''fmat'' or a ''dict'' and can show up in braces ('{ }'). The element of a tuple are values
 +
 
 +
An '''''element''''' of an object can be accessed with FTM expressions using brackets ('[ ]'), as for example:
 
* $myvec[0]
 
* $myvec[0]
 
* $mymat[0 0]
 
* $mymat[0 0]
Line 38: Line 42:
 
Numbered '''''arguments''''' are useful in the FTM message box and can be used in the ''expr'' object , but they give error in expressions of FTM definitions with ''ftm.object''.
 
Numbered '''''arguments''''' are useful in the FTM message box and can be used in the ''expr'' object , but they give error in expressions of FTM definitions with ''ftm.object''.
  
Operators other than '$' and '[ ]' are not evaluated outside of parentheses (see below).
+
Operators other than '$', '[ ]', '{ }' are not evaluated outside of parentheses (see below).
  
 
== Lists ==
 
== Lists ==
Line 48: Line 52:
  
 
Argument lists within parentheses will be evaluated (see below).
 
Argument lists within parentheses will be evaluated (see below).
 +
 +
Argument lists are not to be mixed up with '''''tuples''''' that can show up in FTM expressions. Tuples have braces around thier elements and are actually FTM objects pretty much like fmat and dict.
  
 
== Parentheses ==
 
== Parentheses ==

Revision as of 14:48, 6 June 2007

FTM expressions are used in the following contexts

  • the FTM message box (ftm.mess)
  • FTM definitions (ftm.object)
  • the expr class/object

The syntax is basically always the same appart from minor context dependent details.

Values

The values of FTM expressions can be int, float, symbol or references to FTM object. They values can be represended by the following items:

  • a simple value (int, float, symbol) such as '1', '2.3' and 'three'
  • a named value such as '$myobj'
  • an element of an object such as '$myobj[7]'
  • a tuple such as
  • a numbered argument such as '$1', '$2', etc.
  • an (evaluated) expression within parentheses such as '(1 + 2.3 / $4)'

Examples of simple values are:

  • 1 ... an int
  • -2 ... an int
  • 2.3 ... a float
  • -4. ... a float
  • 5.67e-4 ... a float
  • .89 ... a float
  • ten ... a symbol
  • 11-12 ... a symbol (because no space!)
  • -thirteen ... a symbol

Named values are defined by FTM definitions using ftm.object. The names, always representing a single value, are used in expressions with a leading dollar ('$'), as for example:

  • $x
  • $myobject

A tuple is an FTM object pretty much like an fmat or a dict and can show up in braces ('{ }'). The element of a tuple are values

An element of an object can be accessed with FTM expressions using brackets ('[ ]'), as for example:

  • $myvec[0]
  • $mymat[0 0]
  • $mydict[x]

Numbered arguments are useful in the FTM message box and can be used in the expr object , but they give error in expressions of FTM definitions with ftm.object.

Operators other than '$', '[ ]', '{ }' are not evaluated outside of parentheses (see below).

Lists

Single values can be concatenated to argument lists (in the message box lists or messages) with spaces like:

  • 1 2.3 three
  • 4 + 5.5 / six (this is a list of 5 elements)
  • $myobj set 7 9.8 ten

Argument lists within parentheses will be evaluated (see below).

Argument lists are not to be mixed up with tuples that can show up in FTM expressions. Tuples have braces around thier elements and are actually FTM objects pretty much like fmat and dict.

Parentheses

Parentheses in FTM expressions – '(' and ')' – always will (try to) evaluate the contained elements to a single value.

Inside parentheses you'd have either one

  • a value such as '(1)' or '($x)' or '($mydict[x])' (in which case the parentheses are useless)
  • an infix expression such as '(4 + 5.5 / $six)'
  • a prefix expression such '(random -90 0)' or '($myobj set 7 9.8 ten)'