bool increasingOnIntegerRange(int f(int), int low, int high) { if ( low == high ) return true; else if ( f(low) < f(low+1) ) return increasingOnIntegerRange(f, low+1, high); else return false; } |
The following assertions will all succeed:
assert( increasingOnIntegerRange(square, 0, 6) );
assert( !increasingOnIntegerRange(square, -3, 3) );
assert( increasingOnIntegerRange(identity, 0, 6) );
assert( increasingOnIntegerRange(identity, -3, 3) );
Note that ! is the negation operator in C++.
!expression is the same as (not expression) in Racket.