The result is of type real when any of the arguments is a real. Otherwise, when any of the arguments is a rational the result is a rational. Only when both arguments are integers, the result is an integer.
In coroutining mode, if Number1 or Number2 are free variables, 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).