If-then-else clauses have the form:
if <conditional-expression> then <expression1> else <expression2>
<expression2> must have the same type, and
<conditional-expression> must be a singular Boolean.
<conditional-expression> is true, then
<expression1> is evaluated and
<expression2> is evaluated and returned.
If-then-else clauses have been implemented as late-binding, so potential missing inspectors on the branch not taken are ignored. This makes it safe to write cross-platform expressions without worrying about causing errors for incorrect OS-specific Inspectors. For example, you can write:
- Q: if name of operating system contains "Win" then name of application "conf.exe" of registry else "conf.exe"
- A: conf.exe
On a non-Windows OS, this expression runs the
else expression and
avoid attempting to inspect a non-existent registry.
If-statements can be useful for reporting user-defined errors:
- Q: if (year of current date as integer < 2006) then "Still good" else error "Expired"
- E: User-defined error: Expired
This expression throws a user-defined error if the argument is false.
- Q: if (name of operating system = "WinXP") then "wired" else if (name of operating system ="WinNT") then "tired" else "expired"
- A: wired
This expression does a three-way test of the operating system.
Watch the video about the If-Then-Else in Relevance Language to have more information about this clause.