SICP Practice

Practice 4.42

(define (rank)
  (let ((beti (amb 1 2 3 4 5))
        (acer (amb 1 2 3 4 5))
        (jone (amb 1 2 3 4 5))
        (kitty (amb 1 2 3 4 5))
        (mary (amb 1 2 3 4 5)))
    (require (distinct? (list beti acer jone kitty mary)))
    (require (not (equal? (= kitty 2) (= beti 3))))
    (require (not (equal? (= acer 1) (= jone 2))))
    (require (not (equal? (= jone 3) (= acer 5))))
    (require (not (equal? (= kitty 2) (= mary 4))))
    (require (not (equal? (= mary 4) (= beti 1))))
    (list (list 'beti beti)
          (list 'acer acer)
          (list 'jone jone)
          (list 'kitty kitty)
          (list 'mary mary))))