Result is Number1 - Number2
which should be preferred for portability.
The result is of type breal if any of the arguments is a breal, else float if any of the arguments is a float, else rational if any of the arguments is a rational. Only when both arguments are integers is the result an integer.
In coroutining mode, if Number1 or Number2 are uninstantiated, the call to -/3 is delayed until these variables are instantiated.
Success:
-(5, 2, 3). (gives Result = 3)
-(5, -2.0, Result). (gives Result = 7.0)
Fail:
-(1, 2, 3).
Error:
-(A, 2, 6). (Error 4).
-(1, 2, 3.0). (Error 5).
-(4 + 1, 2, 3). (Error 24).
-(5, 2, r). (Error 24).