Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revisionBoth sides next revision | ||
| alvis:loop [2013/12/14 23:41] marcin created | — (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | | ||
| - | Alvis provides two kinds of the **loop** statement (see Listing 1). The first statement repeats its contents infinitely. The second one repeats its contents while the **guard** g is satisfied. | ||
| - | |||
| - | A **guard** is a Haskell logical expressions placed inside round brackets. | ||
| - | |||
| - | |||
| - | The contents of a loop must be put inside curly brackets and it must contain at least one statement. | ||
| - | |||
| - | The **loop** statement is a multi-step statement. The first step consists of evaluating the guard (if any) and entering the corresponding loop. Then, a model executes steps inside the loop. | ||
| - | |||
| - | < | ||
| - | loop {...} | ||
| - | loop (g) {...} | ||
| - | </ | ||
| - | |||
| - | **Listing 1. ** Loop statement syntax | ||
| - | |||
| - | |||
| - | < | ||
| - | x = 10; | ||
| - | y = x; | ||
| - | loop (y > 1) { | ||
| - | y = y - 1; | ||
| - | x = x * y; | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | **Listing 2. ** Loop statement example | ||
| - | |||
| - | |||
| - | **[[: | ||