# ## FRep

hyperfun:hf_statements

## HyperFun: Statements

There are four types of the statements each ending with ';':

### Assignment statement for a variable.

Its general form is:

<localVarName> '=' <functional expression> ';'

Here <localVarName> is a name of any local variable (including name of array's element) or a name of a coordinate variable. Examples:

```i = 1; i = i + 1; x1 = x + a; Metric = b + aa[I]* exp(-sqrt(xx1^2 + x^3); StrangeBody = Head | (Hand & Leg); sphere1 = Sphere(x,a);```

### Assignment statement for an array.

This statement allows to assign values to all elements of array. Its general form is:

<ElemArrayName> '=' '[' <constant>, …, <constant> ']' ';'

Example:

`pz = [100., -20, 2, 0., 0., -3, 0., 0., 1E-10];`

### Conditional statement

It is a traditional 'if-then-else' statement having two forms:

• 'if' <boolean expression> 'then' <statements> 'endif' ';'
• 'if' <boolean expression> 'then' <statements> 'else' <statements> 'endif' ';'

Example:

```if (x= 0) then metamorph = CSGobject; else if (x = 1) then metamorph = blobbyobject; endif; endif;```

### Iterative statement

The iterative statement allows to define repeating loops. Its general form is:

'while' '(' <boolean expression> ')' 'loop' <statements> 'endloop' ';'

Example:

```i=1; while (i<10) loop xt[i] = x - x0[i]; i = i+1; endloop;``` 