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 | ||
- | |||
- | |||
- | **[[: |