Code

#lang racket

(define (deep-reverse items)
  (cond ((null? items) items)
        ((pair? items) (map deep-reverse (reverse items)))
        (else items)))

; tests

(define x (list (list 1 2) (list 3 4)))
x
(reverse x)
(deep-reverse x)
(newline)
(define y (list (list 1 (list 2 3)) (list 4 (list 5 6))))
y
(reverse y)
(deep-reverse y)

Output

'((1 2) (3 4))
'((3 4) (1 2))
'((4 3) (2 1))

'((1 (2 3)) (4 (5 6)))
'((4 (5 6)) (1 (2 3)))
'(((6 5) 4) ((3 2) 1))