После того, как я уделил этой проблеме домашнее задание немного времени для маринования, я не вижу вреда в размещении дополнительных ответов -

трял в программе 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)))
    ))

Может кто-нибудь, пожалуйста, помогите мне решить это. Спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос