Мне было поручено написать функцию схемы, которая может создавать новый список, содержащий элементы, которые существуют только в одном из двух входных списков.Мне удалось создать рабочее решение:
(define remove
(lambda (l item)
(filter (lambda (x) (not (equal? x item))) l)))
(define uncommon_list
(lambda (list1 list2)
(cond
((null? list2) list1)
((null? list1) list2)
((memv (car list1) list2)
(uncommon_list (cdr list1) (remove list2 (car list1))))
(else
(append (list (car list1)) (uncommon_list (cdr list1) list2))))))
Однако я чувствую, что слишком усложняю это, а сложность O не велика?Любые указатели, чтобы сделать это лучше, было бы здорово!Спасибо