Cómo calcular la cantidad de veces que el patrón en una lista aparece en otra lista en el Esquema

Estoy atrapado en un programa Scheme durante aproximadamente 5 horas. El programa en el que estoy trabajando debe tomar dos listas como entrada y luego calcular la cantidad de veces que el patrón dentro de la primera lista aparece en la segunda lista.

Por ejemplo:>(patt '(b c) '(a b c d e b c)) ==> respuesta = 2

(patt '(a b c)' (a b c a b c d e a b c c c)) ==> respuesta = 3

(patt '((a b) c)' (a b (a b) c d e b c)) ==> respuesta = 1

Abajo está el código que tengo hasta ahora.

(define (patt lis1 lis2)
  (cond
    ((null? lis1) 0)
    ((null? lis2) 0)
    [(and (> (length lis1) 1) (eq? (car lis1) (car lis2))) (patt (cdr lis1) (cdr lis2))]
    ((eq? (car lis1) (car lis2)) (+ 1 (patt lis1 (cdr lis2))))
    (else (patt lis1 (cdr lis2)))
    ))

¿Puede alguien ayudarme a resolver esto? ¡Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta