Я застрял в программе Scheme примерно на 5 часов.Программа, над которой я работаю, должна взять в качестве входных данных два списка, а затем вычислить, сколько раз шаблон из первого списка появляется во втором списке.
Например:> (patt '(b c) '(a b c d e b c))
==> answer = 2
(patt '(abc)' (abcabcdeabccc)) ==> answer = 3
(patt '((ab) c)' (ab (ab) cdebc)) ==> answer = 1
Ниже приведен код, который у меня есть до сих пор.
(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)))
))
Может кто-нибудь, пожалуйста, помогите мне решить эту проблему.Спасибо!