Как я могу сравнить один простой список со списком, который содержит три или более подсписков, и получить два подсписка, которые больше всего соответствуют списку? Я знаю, что мой код совершенно неверный, но может ли кто-нибудь мне помочь?
Вот как я определил список, который содержит подсписки:
(define db (list '('green 'blue 'yellow 'orang)
'('black 'blue 'darkblue 'white)
'('brown 'red 'turkos 'pink)))
Простой список:
(define indata '('green 'blue ))
Код:
(define (compare lst database)
(define (compare-help lst database result)
(cond
((null? database) result)
((equal? (car lst) (car (car database)))
(cons (car database) result))
(else
(compare-help (lst (cdr database) result))))
(compare-help lst database '())))
> (compare indata db)
Я хочу, чтобы вывод был таким:
('green 'blue 'yellow 'orang) ('black 'blue 'darkblue 'white))