Racket\Scheme 比较并删除列表中不需要的项目

Racket\Scheme compare and delete unwanted items in a list

我有 2 个列表:

(Define list1 '("xx1" "xx2" xx3" "xx4" "xx5"))
(Define list2 '("xx2" "xx4" "xx5"))

上面列表中的项目只是一个例子,但无论哪种方式,它都是一个字符串项目。我需要做的是比较两个列表并删除 list1 中在 list2 中找到的项目。

有没有我可以做的短地图例程?

这不是一些作业项目,我希望这里有编程课程 类 不过 :/

#lang racket
(define list1 '("xx1" "xx2" "xx3" "xx4" "xx5"))
(define list2 '("xx2" "xx4" "xx5"))

(for/list ([x (in-list list1)]
           #:unless (member x list2))
  x)

结果:

 '("xx1" "xx3")

还有remove*

一个例子:

#lang racket
(define list1 '("xx1" "xx2" "xx3" "xx4" "xx5"))
(define list2 '("xx2" "xx4" "xx5"))

(displayln (remove* list2 list1))

打印:

(xx1 xx3)