Como calcular o número de vezes que o padrão em uma lista aparece em outra lista no Esquema

Estou preso em um programa de esquema por cerca de 5 horas. O programa em que estou trabalhando deve receber duas listas como entrada e depois calcular o número de vezes que o padrão na primeira lista aparece na segunda list

Por exemplo:>(patt '(b c) '(a b c d e b c)) ==> answer = 2

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

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

Abaixo é o código que tenho até agor

(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)))
    ))

Pode alguém por favor me ajudar a resolver isso. Obrigado

questionAnswers(4)

yourAnswerToTheQuestion