>>749さんのは動かなかったので修正しておきました。
(define assoc
(lambda (key alist)
(cond
((null? alist) #f)
((equal? key (car (car alist))) (car alist))
(else (assoc key (cdr alist))))))

>>752さんのも動かなかったので修正しておきました。
(define assoc
(lambda (key alist)
(cond
((null? alist) #f)
((equal? key (caar alist)) (car alist))
(else (assoc key (cdr alist))))))

>>763さんのは動きました。loopの使い方がイイ感じですね。