我知道如何在列表和变量中删除元素,但是有没有办法使用另一个列表从列表中删除元素?例子:(清单1 2 3 4 5)(清单1 2 3)产量(清单4 5)
答案 0 :(得分:1)
在Racket中,这非常简单,只需使用remove*
内置程序:
(remove* (list 1 2 3) (list 1 2 3 4 5))
=> '(4 5)
答案 1 :(得分:1)
与变量相同,但你需要使用成员函数而不是等于?:
#lang racket
; remove every element included in rlist from flist
(define (remove-list rlist flist)
(if (empty? flist)
'()
(let ((c (car flist)))
(if (member c rlist) ; <====
(remove-list rlist (cdr flist))
(cons c (remove-list rlist (cdr flist)))))))
(remove-list (list 1 2 3) (list 1 2 3 4 5))
=> '(4 5)