.ie
cond-expr anything ¶.el
anything ¶Use the ie
and el
requests to write an if-then-else. The
first request is the “if” part and the latter is the “else” part.
Unusually among programming languages, any number of non-conditional
requests may be interposed between the ie
branch and the
el
branch.
.nr a 0 .ie \na a is non-zero. .nr a +1 .el a was not positive but is now \na. ⇒ a was not positive but is now 1.
Another way in which el
is an ordinary request is that it does
not lexically “bind” more tightly to its ie
counterpart than it
does to any other request. This fact can surprise C programmers.
.nr a 1 .nr z 0 .ie \nz \ . ie \na a is true . el a is false .el z is false error→ warning: unbalanced 'el' request ⇒ a is false
To conveniently nest conditionals, keep reading.