如何在球拍中减去任意2个列表?

时间:2015-09-11 14:17:07

标签: racket

我想定义一个消耗2个列表并执行减法的函数,从而产生另一个列表。

例如,当list1为'(a a b b c)且list2为'(a b)时,减法结果应为'(a b c)。

我试图通过lambda实现它并删除,最终制作了几个列表。

我真的不知道该怎么做。

1 个答案:

答案 0 :(得分: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))