
-(+Number, ?Result)

   Unifies the negative of Number with Result.



Arguments
   +Number             A number.
   ?Result             A variable or a number.

Type
   Arithmetic

Description
   This predicate is used by the ECLiPSe compiler to expand evaluable
   arithmetic expressions.  So the call to -(Number, Result) is equivalent
   to

    Result is -Number

    which should be preferred for portability.

   Number and Result have to be of the same type.


   In coroutining mode, if Number is a free variable, the call to -/2 is
   delayed until this variable is instantiated.




Resatisfiable
      No

Fail Conditions
      Fails if the result of the evaluation does not unify with Result.



Exceptions
     4 --- Number is not instantiated (non-coroutining mode only).
     5 --- Result and Number are numbers of different types.
    24 --- Number is not of a numeric type.
    24 --- Result is neither a number nor a variable.

Examples
   
Success:
      -(1, -1).
      -(5, Result).        (gives Result = -5)
      -(-6.2, Result).     (gives Result = 6.2)
Fail:
      -(1, 0).
Error:
      -(A, 6).                   (Error 4).
      -(1, -1.0).                (Error 5).
      -(1.0, -1).                (Error 5).
      -(4 + 2, -6).              (Error 24).
      -(1, r).                   (Error 24).





See Also
   is / 2
