>>8
Rationale
The one-armed variant of if was removed from Racket to prevent bugs.
In functional code one always uses the two-armed variant of if.
(if test expr-on-true expr-on-false)
Forgetting the second arm expr-on-false would not lead to a syntax-error, but to a runtime error (the expression would return #<void>).
To prevent these often occurring bugs in functional code, it was decided to introduce the form when for the one-armed variant of if.
(when test expr-on-true)
Besides preventing accidental bugs, the new form clearly indicated to a reader of code, that the code relies on side effects.