lojix/prolog/src/main/com/thesett/aima/logic/fol/prolog/expressions/Minus.java
protected NumericType evaluate(NumericType firstNumber, NumericType secondNumber)
    {
        // If either of the arguments is a real number, then use real number arithmetic, otherwise use integer arithmetic.
        if (firstNumber.isInteger() && secondNumber.isInteger())
        {
            return new IntLiteral(firstNumber.intValue() - secondNumber.intValue());
        }
        else
        {
            return new DoubleLiteral(firstNumber.doubleValue() - secondNumber.doubleValue());
        }
    }
protected NumericType evaluate(NumericType firstNumber, NumericType secondNumber)
    {
        // If either of the arguments is a real number, then use real number arithmetic, otherwise use integer arithmetic.
        if (firstNumber.isInteger() && secondNumber.isInteger())
        {
            return new IntLiteral(firstNumber.intValue() - secondNumber.intValue());
        }
        else
        {
            return new DoubleLiteral(firstNumber.doubleValue() - secondNumber.doubleValue());
        }
    }
protected NumericType evaluate ( NumericType firstNumber , NumericType secondNumber ) { // If either of the arguments is a real number, then use real number arithmetic, otherwise use integer arithmetic. if ( firstNumber . isInteger ( ) && secondNumber . isInteger ( ) ) { return new IntLiteral ( firstNumber . intValue ( ) - secondNumber . intValue ( ) ) ; } else { return new DoubleLiteral ( firstNumber . doubleValue ( ) - secondNumber . doubleValue ( ) ) ; } }
Evaluates the arithmetic operator on its two numeric arguments.

@param  firstNumber  The first argument.
@param  secondNumber The second argument.

@return The result of performing the arithmetic operator on its arguments.
Evaluates the arithmetic operator on its two numeric arguments .