1
我知道如何删除元素时有列表和变量,但有没有办法从列表中删除元素使用另一个列表?实施例:(列表1 2 3 4 5)(表1 2 3)的产率(表4 5)删除列表与列表
我知道如何删除元素时有列表和变量,但有没有办法从列表中删除元素使用另一个列表?实施例:(列表1 2 3 4 5)(表1 2 3)的产率(表4 5)删除列表与列表
这是一样具有可变的,但需要使用成员函数,而不是等于?:
#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)
在球拍这是相当简单的,只需使用remove*
内置程序:
(remove* (list 1 2 3) (list 1 2 3 4 5))
=> '(4 5)
是相同的结果预期的(表4 1 2 3 5)和(表4 5 1 2 3)? – GoZoner 2013-03-20 15:49:31
另外,你为什么要这样做?如果您试图表示类似于减法的东西,则列表表示可能不合适。球拍包括集合作为数据结构:http://docs.racket-lang.org/reference/sets.html – dyoo 2013-03-20 19:50:22