Association Lists

Make the following functions

I'm fully aware that the web is filled with sample code to do these things. Use of such code is cheating! I shall check.

(define (test)
  (display (set 'a 1 '((a 10) (b 11) (c 12))))
  (newline)
  (display (set 'd 4 '((a 10) (b 11) (c 12))))
  (newline)
  (display (eqv? 10 (get 'age (set 'age 10 '(())))))
  (display (eqv? '() (get 'age '(()))))
  (display (eqv? 10 (get 'age (set 'age 10 '((age 8) (height 6) (weight 3))))))
  (display (eqv? 10 (get 'height (set 'height 10 '((age 8) (height 6) (weight 3))))))
  (display (eqv? 10 (get 'age (set 'age 10 '((width 4) (age 8) (height 6) (weight 3))))))
  (display (eqv? 7 (get 'weight (set 'weight 7 '((age 8) (height 6) (weight 3))))))
  (display (eqv? 'fifth (get 'grade (set 'grade 'fifth '((age 8) (height 6) (weight 3))))))
  (display (eqv? '() (get 'missing (set 'age 10 '((age 8) (height 6) (weight 3))))))
  (display (eqv? 10 (get 'age (set 'age 10 '()))))

  (display '(“Deleting spam from list”))
  (display (delete 'spam '((spam 10))))

  (display '(“Deleting spam from list”))
  (display (delete 'spam '((nospam 10))))

  (display '(“Deleting spam from list”))
  (display (delete 'spam '()))

  (display '(“Deleting spam from list”))
  (display (delete 'spam '((fred 5) (steve 7) (spam 10))))

  (display '(“Deleting spam from list”))
  (display (delete 'spam '((spam 10) (wilma 4) (fred 2) (fry yes))))

  (display '(“Deleting spam from list”))
  (display (delete 'spam '((wilma 10) (spam yes) (fred 2) (fry yes))))

  (display '(“Deleting spam from list”))
  (display (delete 'spam '((nospam 10) (wilma 4) (fred 2) (fry yes))))

)