; a programming puzzle
(define (f n)
(cond ((and (positive? n) (even? n)) (- n 1))
((and (negative? n) (even? n)) (+ n 1))
((and (positive? n) (odd? n)) (- (- n) 1))
((and (negative? n) (odd? n)) (+ (- n) 1))
(else 0)))
(display (f (f -3))) (newline)
(display (f (f -2))) (newline)
(display (f (f -1))) (newline)
(display (f (f 0))) (newline)
(display (f (f 1))) (newline)
(display (f (f 2))) (newline)
(display (f (f 3))) (newline)