Perfect Developer basic tutorial 2 | This page last modified 2011-10-29 (JAC) |
1. What does the expression ([x > y]: x, []: y)
compute,
given that x
and y
are of the same type and that the ~~
operator
defines a total ordering on that type?
The maximum of x and y.
It can be read as "if x
greater than y then x, else y". If the ~~ operator does not define a total
ordering, it will still return a "maximum" in the sense that the result is not
less than either x or y.
2. Use a let-declaration to simplify the following expression:
( [([a < b]: b - a, []: a - b) > 10]:
"The difference is " ++ ([a < b]: b
- a, []: a - b).tostring
++ " which is too large",
[]:
"OK"
)
(in case you are wondering, the ++
operator performs string concatenation in this context).
( let diff ^= ([a < b]: b - a, []: a - b);
[diff > 10]:
"The diference is " ++ diff.tostring
++ " which is too large",
[]:
"OK"
)