;#!/usr/bin/racket
;#lang scheme

(define (reverse items)
        (define (iter xs result)
                (if (null? xs)
                        result
                        (iter (cdr xs) (cons (car xs) result))))
        (iter items '()))

(define (deep-reverse items)
        (if (not (pair? items))
                items
                (reverse (map deep-reverse items))))

; ((1 2) (3 4))
(define x (list (list 1 2) (list 3 4)))

;(display x)
;(newline)

;(display (reverse x))
;(newline)

; (deep-reverse ((1 2) (3 4)) )
; (reverse (map deep-reverse ((1 2) (3 4)) ))
; (reverse (reverse (map deep-reverse (1 2) )))
; (reverse (reverse (map
(display (deep-reverse x))
(newline)
