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