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