2015-09-11 4 views
1

Я хочу определить функцию, которая потребляет 2 списка и делает вычитание в результате другого списка.Как я могу вычесть произвольные 2 списка в ракетке?

Например, когда list1 is '(a a b b c), а list2 равен' (a b), результат вычитания должен быть '(a b c).

Я попытался реализовать его лямбдой и удалить, в итоге создал списки sevral.

Я действительно не знаю, как это сделать.

+0

Как результат быть от '(вычесть '(а)' (а а))'? – Sylwester

ответ

1

Вот один из способов:

#lang racket 
(define (subtract xs ys) 
    (if (empty? ys) 
     xs 
     (subtract (remove (first ys) xs) (rest ys)))) 

(subtract '(a a b b c) '(a b)) 
+0

О, это очень просто, как только я знал, как это сделать. Действительно полезно. Большое спасибо! – shklaurant

Смежные вопросы