Как взять пересечение пар из двух списков в схеме?

Я использую этот сценарий из Маленького интриганта, чтобы получить пересечение двух множеств. Но я получаю ошибку несвязанного идентификатора в 'member?', Может кто-нибудь сказать, что с ним не так:

(define intersect
  (lambda (set1 set2)
    (cond ((null? set1) (quote ()))
          ((member? (car set1) set2)
           (cons (car setl)
                 (intersect (cdr set1) set2)))
          (else (intersect (cdr setl) set2)))))

Я пропустил эту функцию выше:

(define member?
  (lambda (a lat)
    (cond ((null? lat) #f)
          (else (or (eq? (car lat) a)
                    (member? a (cdr lat)))))))

Кроме того, я хочу пересечь два списка, например: '((1 2) (2 7))' ((1 3) (4 5)) = '((1 5)), какие-либо предложения о том, как это сделать? Я ищу ответы из этого поста:Как написать функцию схемы, которая принимает два списка и возвращает четыре списка

Ответы на вопрос(2)

Ваш ответ на вопрос